> That’s what I was saying.  But you seemed to imply that grep -F 'musl'
> was preferable to grep -E '^musl' from a portability and robustness
> point of view.

Sorry if I was unclear; `grep -F` is preferable to `fgrep` since the latter is less portable, and `grep -F` may be preferable to `-E` because it avoids the undesirable zsh expansion.

> The -q is superfluous with the >/dev/null, and should be removed;
> > incidentally though, is it not harmless in this case?
>  It is not.  In Thomas’ case, using grep >/dev/null would have avoided
> a 0 exit status and thus prevented his system from being erroneously
> detected as supporting musl.

I may have misunderstood Thomas' case, where zsh expands ^musl to all filenames not containing `musl`. For convenience, here's the sample we were discussing, which would be a different case:

if command -v ldd >/dev/null && ldd --version 2>&1 | grep -Fq 'musl' >/dev/null

In this case there ought to be no expansion because there is no carat and we use `grep -F`.

Generally speaking `grep -q` can have undesirable side-effects, but I cannot see how such would occur in this case since all the input to grep is from the pipe, which barring a radically improbable interrupt should never error.  I would be interested to know if I have misunderstood, though.

On Tue, 10 Apr 2018 at 16:56 Arthur Reutenauer <arthur.reutenauer@normalesup.org> wrote:
On Tue, Apr 10, 2018 at 11:05:12AM +0000, Brian Hunt wrote:
>>  The caret in itself was not the problem, only that it was not escaped
>> for the shell.  Testing a regexp, with -E of course, is just as robust,
>> and allows us to be more specific about what we test.
>
> Either is fine I am sure

  That’s what I was saying.  But you seemed to imply that grep -F 'musl'
was preferable to grep -E '^musl' from a portability and robustness
point of view.

>>  grep -E '^musl' works just as well; and as I explained, -q may return 0
>> even if there are errors, so should be avoided.
>
> The -q is superfluous with the >/dev/null, and should be removed;
> incidentally though, is it not harmless in this case?

  It is not.  In Thomas’ case, using grep >/dev/null would have avoided
a 0 exit status and thus prevented his system from being erroneously
detected as supporting musl.

        Best,

                Arthur
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________
--

from the personal account of:

Brian M Hunt <brianmhunt@gmail.com>
Direct: +1-289-684-4677
LinkedIn: https://linkedin.com/in/brianmhunt

This e-mail may contain information that is private, privileged, confidential and/or exempt from disclosure. Except as per this notice no waiver of any kind is intended by sending this e-mail, and this email is intended only for the named recipient(s) or the subscribers of a forwarding service the email is sent directly to and to which service you are an authorized recipient. Use, dissemination or copying without authorization is prohibited. Please notify the sender and destroy all copies of this e-mail if you have received this email in error.