我需要搜索一个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
解释$
为正则表达式。这是关于$someVar
用环境变量someVar
(可能是空字符串)的值替换外壳的情况。第二个示例不应返回仅包含所有行的someVar
所有行,因为所有行中都包含空字符串。要告诉Shell不替代它,您必须使用'$someVar'
或\$someVar
。然后,您将不得不处理角色的grep
解释$
。