当在搜索词中使用美元符号时 grep 会做什么?

当在搜索词中使用美元符号时 grep 会做什么?

我想$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无法自行修改文件;它没有造成损害。

相关内容