小编典典

如何使用 Bash 检查文件是否包含特定字符串

all

我想在 bash 中检查文件是否包含特定字符串。我使用了这个脚本,但它不起作用:

 if [[ 'grep 'SomeString' $File' ]];then
   # Some Actions
 fi

我的代码有什么问题?


阅读 220

收藏
2022-03-31

共1个答案

小编典典

if grep -q SomeString "$File"; then
  Some Actions # SomeString was found
fi

你不需要[[ ]]这里。直接运行命令即可。-q当您不需要找到时显示的字符串时添加选项。

grep命令根据搜索结果在退出代码中返回 0 或 1。0 如果发现了什么;1 否则。

$ echo hello | grep hi ; echo $?
1
$ echo hello | grep he ; echo $?
hello
0
$ echo hello | grep -q he ; echo $?
0

您可以将命令指定为 的条件if。如果命令在其退出代码中返回 0,则表示条件为真;否则为假。

$ if /bin/true; then echo that is true; fi
that is true
$ if /bin/false; then echo that is true; fi
$

如您所见,您直接在此处运行程序。没有额外的[][[]]

2022-03-31