Hi Dale, thank you for your reply. Currently, I work around like this:
echo -e "foo\nbar" | { grep '^#' >comments.txt || true; } | some-other-command
This works, but it is not nice to read and more typing.
There are many ways to work around that. During the last months I wrote
a lot of Bash code, and often I needed to handle the non-zero exit code of grep.
It would be handy to have an option to make grep always return zero (except "file not found" or similar errors).
Why not?
Before creating a patch, I would like to know which command line option you prefer.
There are not many characters left, which could be used.
What about `-g` like "good, even if nothing was found"?
Or `-t` like always return true (zero exit status).
But first: Would a patch be acceptable?
Regards,
Thomas
Thomas Güttler Mailinglisten <guettliml@gmail.com> writes:
> To make Bash more robust, I use the "strict mode".
>
> This works fine, except that very often I want to filter out some
> output, and it does not matter to me if there is a match or not.
>
> Afaik there is no option to make `grep` always exit with a zero exit
> status. No matter if a match was found or not. Errors like "file not found"
> should still return a non-zero exit status.
Well, this isn't what you asked for, but it's a reasonaby terse way to
get the effect without modifying grep:
grep ... || [[ $? != 2 ]]
That has an exit status of 1 if grep exits with 2, and an exit status of
0 otherwise.
Dale