exit和return的区别
exit
可放在shell脚本中任意位置。表示随时结束运行程序的这个进程,并删除进程使用的内存空间,同时把错误信息返回给父进程。
return
是调用堆栈的返回,返回函数值并退出函数,一般用在函数方法体内。
[Ref] Shell中exit和return的区别
状态码取值范围
if [ $? != 0]; then
echo "last exe fail"
exit 1
else
echo "last exe success"
fi
状态码 取值范围是[0,255]
,这个范围之外数值会经过算法映射到这个范围上。0
表示正常退出,非0
表示异常退出。
状态码值的定义尚未有统一的标准,推荐使用GNU C
的头文件<sysexits.h>
中对于状态码的定义。
[Ref] What does $? do?
[Ref] Shell中exit和return的区别
常见状态码
状态码 | 描述 |
---|---|
0 | 命令成功结束 |
1 | 通用未知错误 |
2 | 误用Shell命令 |
126 | 命令不可执行 |
127 | 没找到命令 |
128 | 无效退出参数 |
128+x | Linux信号x的严重错误 |
130 | 命令通过Ctrl+C控制码越界 |
255 | 退出码越界 |
[Ref] Linux Shell 编程常见规则及退出状态码