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 *