Ich muss nach einer PHP-Variablen suchen $someVar
. Grep glaubt jedoch, dass ich versuche, eine Regex auszuführen, und beschwere mich:
$ 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">>
Ich sehe nicht , eine Option für das Erklären grep nicht die Zeichenfolge als regex zu interpretieren, aber die gehören $
einfach als eine weitere Zeichenkette.
grep
Interpretation$
als Regex. Es geht darum, dass die Shell$someVar
durch den Wert der Umgebungsvariablen ersetzt wirdsomeVar
, wahrscheinlich durch die leere Zeichenfolge. Das zweite Beispiel sollte nicht alle Zeilen mit,someVar
sondern alle Zeilen zurückgeben, da sich die leere Zeichenfolge in allen Zeilen befindet. Um die Shell anzuweisen, nicht zu ersetzen, müssen Sie'$someVar'
oder verwenden\$someVar
. Dann müssen Sie sich mit dergrep
Interpretation des$
Charakters befassen .