J’utilise shell bash
$cat test a --b $grep '--b' test grep: option `--b' is ambiguous Usage: grep [OPTION]... PATTERN [FILE]... Try `grep --help' for more information. $grep "--b" test grep: option `--b' is ambiguous Usage: grep [OPTION]... PATTERN [FILE]... Try `grep --help' for more information. $grep '\-\-b' test a --b
Le livre de script shell classique au chapitre 7 “Evaluation des entrées et des sorties, des fichiers et des commandes” de la section 7.7 indique que
“Les guillemets simples obligent le shell à tout traiter entre les guillemets littéralement”.
Alors pourquoi les guillemets simples ne fonctionnent-ils pas plus haut?
La coquille les traite littéralement. Mais le shell n’est pas responsable de la manière dont l’ application les traite. C’est à l’application de décider comment elle veut gérer le --b
passé en argument.
La plupart des utilitaires gnu ignorent --options
after --
, vous pouvez donc plutôt faire un grep -- --b test
. Et comme vous étiquetez votre question linux
, il y a des chances que vous ayez gnu grep.