我在为一个数组变量查找一些php代码文件,并遇到了一个我很好奇的问题。
我试图给grep:
grep -RF "$array_variable['some_key'][$key_variable]" *
,并返回任何内容。但是,如果我逃过第二个美元符号,它就会找到具有该模式的线条。
grep -RF "$array_variable['some_key'][\$key_variable]" *
手册页中的-F标志表示它将模式视为固定字符串而不是正则表达式。它似乎只处理第一个美元符号。
请帮我理解grep是如何解释这个命令的。这可能是一个shell问题,而不是一个正则表达式问题?
UPDATE增加了一个额外的数组层,它显示了为什么我不想使用单引号。逃避单引号比美元符号更重要。
请参阅:[在bash中的单引号和双引号之间的区别](http://stackoverflow.com/q/6697753/3776858) – Cyrus
我认为第一个$被视为“行首”锚而不是字面值$。 –
你打算做什么'“$ array_variable ['some_key'] [$ key_variable]”'是什么意思?您的问题包括简洁,可测试的样本输入(包括任何变量的值)和预期输出,然后有人可以帮助您。 –