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

问题描述 投票:0回答:3

我在脚本中有多个unix命令。如果匹配,“cat file.txt | grep pattern”将顺序进入下一个命令。否则命令应该中止。任何单行命令来实现这一点都会有所帮助。

unix grep
3个回答
1
投票

如果你正在使用bash或sh,你可以像这样设置errexit选项:set -o errexit

如果你这样做,那么这行(和任何其他行)将在你的脚本失败时中止:

grep pattern file.txt

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

grep pattern file.txt || exit 1

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

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

0
投票

将你的grep命令放在if else循环中,如果string不匹配则使用exit 0命令。


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; }
© www.soinside.com 2019 - 2024. All rights reserved.