欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

(以上。)