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.
grep
interpretacja$
jako wyrażenia regularnego. Chodzi o podstawienie przez powłokę$someVar
wartości zmiennej środowiskowejsomeVar
, prawdopodobnie pustego ciągu. Drugi przykład nie powinien zwracać wszystkich wierszy,someVar
ale 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ęgrep
interpretacją$
postaci.