我不明白为什么 grep 在第一个示例中不起作用
bla@ble:~/html/example$ grep -r "protected $disallowedBlockNames = array('install/end');" app/
bla@ble:~/html/example$
但
bla@ble:~/html/example$ grep -r 'protected $disallowedBlockNames = array' app/
app/Resource/Block.php: protected $disallowedBlockNames = array('install/end');
答案1
您没有提供示例输入,但在第一个示例中,您的双引号允许disallowedBlockNames
shell 扩展变量前它被使用grep
。我假设这是您的 php 代码中设置的变量,并且在您的 shell 中不存在,因此它会扩展为空。所以你真正发送给 grep 的是:
grep -r "protected = array('install/end');" app/
在第二个示例中,单引号阻止 shell 扩展变量。