【发布时间】:2019-03-16 06:42:02
【问题描述】:
我在一个脚本中有多个 unix 命令。如果匹配,“cat file.txt | grep pattern”将依次执行下一个命令。否则,如果不匹配,该命令应该中止。任何实现此目的的单行命令都会有所帮助。
【问题讨论】:
我在一个脚本中有多个 unix 命令。如果匹配,“cat file.txt | grep pattern”将依次执行下一个命令。否则,如果不匹配,该命令应该中止。任何实现此目的的单行命令都会有所帮助。
【问题讨论】:
如果您使用的是 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
【讨论】:
将你的 grep 命令放入 if else 循环中,如果字符串不匹配使用 exit 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; }
【讨论】: