我想退出 shell 脚本。这是我在另一个函数中调用的函数
我这样做:
exit_script()
{
if [[ $? -eq 0 ]] ; then
echo "exit from script with success"
exit
else
echo "exit with error..."
exit
fi
}
放置“退出”是否正确,或者我必须在“退出”之后放置退出状态(如“退出 1”)?
最佳答案
不带参数的
exit
使用前面命令的退出状态。对于第一种情况,这是可以的,但在第二种情况下,您应该以非零退出状态退出(对于非特定错误,1 是可以的),而不是从前面的 echo
中获得的 0 .
exit_script()
{
if [[ $? -eq 0 ]] ; then
echo "exit from script with success" >&2
exit # or exit 0, if you want to be specific
else
echo "exit with error..." >&2
exit 1
fi
}
您可能希望消息转到标准错误,但如果不这样做,只需删除我添加到每次调用 echo
中的 >&2
即可。
如果您想以与正在测试的退出状态相同的退出状态退出,则需要先保存它。
exit_script()
{
status=$?
if [[ $status -eq 0 ]] ; then
echo "exit from script with success"
else
echo "exit with error..."
fi >&2
# Now you can just make one, all-purpose call to exit
exit $status
}
关于bash - 如何使用函数以正确的方式退出 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37329344/