命令后终止命令

命令后终止命令

执行条件循环时如何终止下一个命令?我的条件如下,如果它显示 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

相关内容