J'ai besoin de rechercher une variable PHP $someVar
. Cependant, Grep pense que j'essaye d'exécuter une regex et se plaint:
$ grep -ir "Something Here" * | grep $someVar
Usage: grep [OPTION]... PATTERN [FILE]...
Try `grep --help' for more information.
$ grep -ir "Something Here" * | grep "$someVar"
<<Here it returns all rows with "someVar", not only those with "$someVar">>
Je ne vois pas d'option pour dire à grep de ne pas interpréter la chaîne comme une expression régulière, mais d'inclure le $
comme un autre caractère de chaîne.
grep
interpréter$
comme une regex. Il s'agit de la substitution du shell$someVar
par la valeur de la variable d'environnementsomeVar
, probablement la chaîne vide. Le deuxième exemple ne doit pas renvoyer toutes les lignes avecsomeVar
mais toutes les lignes, car la chaîne vide se trouve dans toutes les lignes. Pour dire au shell de ne pas se substituer, vous devez utiliser'$someVar'
ou\$someVar
. Ensuite, vous devrez vous occuper de l'grep
interprétation du$
personnage.