如果模式匹配失败,如何让unix grep命令中止

时间:2019-03-15 08:11:41

标签: unix grep

我在一个脚本中有多个Unix命令。如果匹配,则“ cat file.txt | grep模式”将顺序执行下一个命令。否则,该命令应中止。任何单行命令都可以达到目的。

3 个答案:

答案 0 :(得分:1)

如果您使用的是bash或sh,则可以如下设置选项errexitset -o errexit

如果这样做,那么此行(以及其他任何行)将在脚本失败时终止脚本:

grep pattern file.txt

或者,您可以像这样简单地使用||

grep pattern file.txt || exit 1

或者,更详细地说,使用if

if ! grep pattern file.txt; then
    exit 1
fi

答案 1 :(得分:0)

将grep命令放入if else循环中,如果字符串不匹配,请使用exit 0命令。

答案 2 :(得分:0)

cat file.txt | grep pattern

可以写为

grep pattern file.txt

如果失败,您可以使用&&跳过下一行

grep pattern file.txt && 
   echo "I am the next line"

或退出

grep pattern file.txt || { echo "Grep found nothing"; exit 1; }