Muszę wyszukać zmienną PHP $someVar. Jednak Grep myśli, że próbuję uruchomić wyrażenie regularne i narzeka:
$ 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">>
Nie widzę opcji mówienia grepowi, aby nie interpretował ciągu jako wyrażenia regularnego, ale aby zawierał $tylko inny znak ciągu.
grepinterpretacja$jako wyrażenia regularnego. Chodzi o podstawienie przez powłokę$someVarwartości zmiennej środowiskowejsomeVar, prawdopodobnie pustego ciągu. Drugi przykład nie powinien zwracać wszystkich wierszy,someVarale wszystkie wiersze, ponieważ pusty ciąg znajduje się we wszystkich wierszach. Aby powiedzieć powłoce, aby nie zastępowała, musisz użyć'$someVar'lub\$someVar. Wtedy będziesz musiał zająć sięgrepinterpretacją$postaci.