执行条件循环时如何终止下一个命令?我的条件如下,如果它显示 echo“未找到”,我想退出整个脚本,这样该循环之后的任何内容都将不起作用。请帮我。我是unix的初学者。谢谢。
if grep -q 'pattern' 'file';
then
echo "found"
else
echo "not found"
fi
答案1
您可以使用exit
命令来执行此操作。从man bash
:
退出[n]
使 shell 以状态 n 退出。如果省略 n,则退出状态为最后执行的命令的状态。 EXIT 上的陷阱在 shell 终止之前执行。
if grep -q 'pattern' '/path/to/file'
then
echo "found"
else
echo "not found"
exit
fi
笔记:除非您随后在同一行上放置其他命令,否则第一行末尾的分号是不必要的,例如
if grep -q 'pattern' '/path/to/file'; then
echo "found"
else
echo "not found"
exit
fi
答案2
if grep -q 'pattern' '/path/to/file';
then
echo "found"
else
echo "not found"
exit 1
fi
编辑
选择:
grep -q 'pattern' '/path/to/file'
grep_ec=$?
if [ "$grep_ec" -eq "0" ]; then
echo "found"
else
echo "not found"
exit $grep_ec
fi