我需要搜索一个 PHP 变量 $someVar
。但是,Grep 认为我正在尝试运行一个正则表达式,并出现了错误:
$ 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">>
我没有看到让grep不将字符串解释为正则表达式,而是将$
作为另一个字符串字符包含在内的选项。
grep
将$
解释为正则表达式。而是关于shell用环境变量someVar
的值(可能为空字符串)替换$someVar
。第二个例子不应该返回所有带有“someVar”的行,而是所有行,因为空字符串在所有行中都存在。如果要告诉shell不进行替换,必须使用'$someVar'
或\$someVar
。然后你需要处理grep
对$
字符的解释。 - Christophe Drevet