首页 > 解决方案 > 如果模式匹配失败,如何让 unix grep 命令中止

问题描述

我在一个脚本中有多个 unix 命令。如果匹配,“cat file.txt | grep pattern”将依次执行下一个命令。否则,如果不匹配,该命令应该中止。任何实现此目的的单行命令都会有所帮助。

标签: unixgrep

解决方案


如果您使用的是 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

推荐阅读