我需要搜索一个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解释$。