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

标签 bash shell grep

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

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

我的代码有什么问题?

最佳答案

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
$

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

关于bash - 如何使用 Bash 检查文件是否包含特定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11287861/

相关文章:

regex - 如何在 sed 解释器脚本的 shebang 中使用 Posix 扩展正则表达式?

linux - 逐行读入文件并在另一个文件中搜索部分匹配的行

regex - 与变量名一起使用时,tcl 正则表达式无法按预期工作

grep - 如何grep一个特定的整数

linux - 如果命令失败如何退出?

bash - 使用 Bash 测试是否启用了 PostgreSQL hstore 扩展

bash - 当其中一个后台进程出错时如何退出 bash 脚本?

linux - 通过 ssh 传递外部 shell 脚本变量

javascript - 如何忽略 child_process.exec 产生的错误?

python - 如何最有效、最安全地模拟 Python shell?