我想在 bash 中检查文件是否包含特定字符串。我使用了这个脚本,但它不起作用:
if [[ 'grep 'SomeString' $File' ]];then # Some Actions fi
我的代码有什么问题?
if grep -q SomeString "$File"; then Some Actions # SomeString was found fi
你不需要[[ ]]这里。直接运行命令即可。-q当您不需要找到时显示的字符串时添加选项。
[[ ]]
-q
该grep命令根据搜索结果在退出代码中返回 0 或 1。0 如果发现了什么;1 否则。
grep
$ echo hello | grep hi ; echo $? 1 $ echo hello | grep he ; echo $? hello 0 $ echo hello | grep -q he ; echo $? 0
您可以将命令指定为 的条件if。如果命令在其退出代码中返回 0,则表示条件为真;否则为假。
if
$ if /bin/true; then echo that is true; fi that is true $ if /bin/false; then echo that is true; fi $
如您所见,您直接在此处运行程序。没有额外的[]或[[]]。
[]
[[]]