Shell-shell脚本退出码0,1有何区别

Shell-shell脚本退出码0,1有何区别

泛泛之交 发布于 2017-08-02 字数 213 浏览 1093 回复 2

下面的状态码0,1有何区别。
echo "Is it morning? Please answer yes or no"
read timeofday

if [ "$timeofday" = "yes" ]; then

echo -n "Good morning"

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

归属感 2017-09-23 2 楼

其实都一样,都是退出,只不过返回这个0和1是返回给操作系统的错误或者正确代码。

exit 1 指的是脚本运行的返回值,用来指示成功或失败,以及失败的原因。
exit 0 表示成功,exit 1表示失败。
你在自己写脚本的时候,可以定义失败的类型,比如exit 1表示错误1, exit 2表示错误2。
在脚本运行后,可以用echo $?命令来确定脚本的返回值,从而判定脚本是否成功运行,或则有哪些错误。

归属感 2017-08-12 1 楼

当你 exit 0 的时候
在调用环境echo $?就返回0,也就是说调用环境就认为 你的这个程序执行正确

当 exit 1 的时候,一般是出错定义这个1,也可以是其他数字,很多系统程序这个错误编号是有约定的含义的。但不为0就表示程序运行出错。 调用环境就可以根据这个返回值判断 你这个程序运行是否ok。

如果你用脚本a调用脚本b,要在a中判断b是否正常返回,就是根据 exit 0 or 1 来识别。
执行完b后, 判断 $? 就是返回值