在 bash 中输出退出状态的正确方法是什么?据我所知,退出状态由$?
对应于最后执行的命令的状态。
正在处理的脚本对作为参数提供的文件进行一些条件检查,例如,检查是否有任何文件被命名或文件是否存在。
所以我有这样的条件语句:
if [ $# -eq 0 ] ; then
echo "No file name(s) given! \nExit status=$?"
exit
if [ ! -e "$fName" ] ; then
echo "$fName does not exist! \nExit status=$?"
exit
但这些返回的退出状态为 0。我什至不完全确定什么退出代码适合每种情况,但我认为这两个 1 都适用于基于this http://tldp.org/LDP/abs/html/exitcodes.html。我应该将 1 硬编码到条件语句中还是更改逻辑以便 unix 输出错误代码?另外,我在上面的示例中得到的 0 是哪个命令的退出代码?
在这两种情况下,最后执行的命令是[
,它以 0 状态(“成功”)退出,让您进入“true”块。
是的,您需要指定一个非零退出代码exit
命令。
迂腐地“unix”不会输出错误代码:它是运行脚本的 shell 以指定的状态退出。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)