linux 退出状态码

在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

(以上。)

你可能感兴趣的:(linux,shell)