linux 退出状态码
程序员文章站
2022-06-04 11:18:53
...
在Linux状态中,每当命令执行完成后,系统都会返回一个退出状态。该退出状态用一个整数值表示,用于判断命令运行的正确与否。
最后一次执行命令的退出状态值被保存在内置变量“$?”中,所以,可以通过echo语句测试命令是否运行成功。
一般来讲,退出状态 0 表示正常执行,没有遭遇任何问题。其他非零的状态码均表示失败。
状态码 | 描述 |
---|---|
0 | 命令返回成功 |
1 | 一般性未知错误 |
2 | 不适合的shell命令(错误的shell命令) |
126 | 找到了该命令但无法执行 |
127 | 没找到命令 |
128 | 无效的退出参数 |
128+x | 与Linux信号x相关的严重错误 |
130 | 通过Ctrl+C终止的命令 |
255 | 正常范围之外的退出状态码 |
示例
# 访问不存在的目录或文件
$ cd hello
bash: cd: hello: No such file or directory
$ echo $?
1
#执行不存在的执行文件
$ ./hello.sh
bash: ./expect.sh: No such file or directory
$ echo $?
127
# 返回成功的例子。查看一个文件是否存在(存在)
$ test -e test.txt
$ echo $?
0
自定义退出状态码exit
命令允许你在脚本结束时指定一个退出状态码。
$ cat exit.sh
#!/bin/bash
set -euo pipefail
echo 'this is a test'
exit 88
$ ./exit.sh
this is a test
$ echo $?
88
(以上。)