Subject: bug#30105: closed (Re: bug#30105: Additional "grep" parameter to change the exit code from 1 to 0, even if grep doesn't find pattern)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 14 Jan 2018 17:17:01 +0000

Your bug report

#30105: Additional "grep" parameter to change the exit code from 1 to 0,  even if grep doesn't find pattern

which was filed against the grep package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
30105: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=30105
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#30105: Additional "grep" parameter to change the exit code from 1 to 0, even if grep doesn't find pattern
From: Paul Eggert <[email-masked]>
To: Vasyl Vavrychuk <[email-masked]>
Cc: [email-masked]
Date: Sun, 14 Jan 2018 09:16:41 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Vasyl Vavrychuk wrote:
> Actually I use grep in pipe with
> 
>    set -eo pipefail
> 
> but still there I can do
> 
>    ... | grep exrp || test $? -lt 2 | ...
> 
> Thanks for suggestion.

You're welcome. You'll need to parenthesize of course. Closing the bug.

Subject: Re: Additional "grep" parameter to change the exit code from 1 to 0, even if grep doesn't find pattern
From: Vasyl Vavrychuk <[email-masked]>
To: [email-masked]
Date: Sun, 14 Jan 2018 07:21:11 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> > I want to suggest my idea about a additional "grep" parameter which
> > would change the exit code 1 to 0, even when "grep" doesn't find a
> > pattern. I.e. something similar to "-0".
>
> Thanks, but you can avoid triggering your trap
> by appending "|| :" to your grep command.
>
> E.g.,
>
>     grep not-found /dev/null || :
>
> Then, even when grep fails, the shell sees only the successful
> exit code from the ":" (always succeeding) built-in command.

It replaces exit status 2 with success too.
I would like to have an option to return success if nothing is found but
still return fail if error happens.