我想$featuredicon
在我的 php 文件中查找变量,然后我运行grep -ir "$featuredicon"
我知道美元符号是 shell 中的保留字符。但它实际上有什么用呢?我修改了我的 php 文件吗?我担心我做了坏事……
下次我会跑grep -ir "\$featuredicon"
答案1
列出每个文件的每一行的原因是由于您的 shell 的变量替换。
你打电话时
grep -ir "$featuredicon" *
bash
会评估这一点。它会查找变量$featuredicon
并将其放入命令中。猜猜$featuredicon
最有可能是什么?
是的,没什么。所以你实际上在做的是:
grep -ir "" *
这与每个文件的每一行都匹配。
旧答案
美元符号($
)是正则表达式中的占位符end-of-line
(我认为对于 grep 来说也是如此)。
如果您想搜索美元符号,请使用'\$'
。
请务必检查 StackOverflow 问题:如何查找美元符号 ($)?
答案2
grep
无法自行修改文件;它没有造成损害。