我曾经看到过在bash脚本中使用"exit"和"exec"来停止脚本的执行,如果出现错误。例如:
这里的最佳实践是什么?欢迎广泛讨论/解释有关“exec”和“exit”的内容 :)
if [ ! -f file ]; then
echo "no file"
exit 1
fi
并且:
if [ ! -f file ]; then
exec echo "no file"
fi
这里的最佳实践是什么?欢迎广泛讨论/解释有关“exec”和“exit”的内容 :)
exec
命令,会有两个进程 ID,shell 会一直占用内存,而且你必须记得在下一行写入exit $?
命令以便将退出代码传递给父进程。就是这样。 - zwolexit $?
?请看这两个例子:http://pastebin.com/Sax5SVGa。正如您所看到的,在第二个例子中,我没有使用 exec,但仍然得到了正确的退出代码。或者我误解了你的意思? - Martinexec
运行长期进程可以确保在像runit、s6等进程监管器下运行时将信号发送到正确的进程。 - clacke