-
Linux 中,每个命令执行完成后都会返回一个退出状态码,通知系统命令执行完成。 退出状态码是 0~255 的一个正整数,在命令执行结束后由命令传给解释程序。 通常情况下,可以根据这个值来判断命令是否执行成功。Linux 提供了变量
$?
存最近执行的命令的退出状态码,当一个命令执行完成后, 可以通过$?
到命令的退出码,如下:-
通过变量$?查看命令执行的退出码
cd /home/hadoop01/bash01 echo "$?" mkdir logs echo "$?"
-
-
常见的命令退出状态码:
状态码 说明 0 命令成功结束 1 未知错误 2 误用 Shell 命令 126 命令不可执行 127 命令没有找到 128 无效退出参数 一个命令成功执行结束返回的状态码是 0,如果命令执行出现错误会返回一个非 0 的正整数。
如果只在命令提示符下键入 exit,将退出当前进程。如果在脚本中使用 exit 命令,会将 exit 命令之前的一个命令退出码返回。通常情况下:退出状态为 0 表示命令执行成功,而非 0 退出码说明命令没有执行成功。
-
可以使用 exit 命令在脚本中指定退出码,如下所示。
cd /home/hadoop01/bash01 mkdir logs exit 0
-
命令 exit 可以在分支语句中使用,根据条件退出脚本执行并返回退出码,在父脚本中作 为判断的条件。注意:退出码可以指定,但不要超过取值范围。退出码的取值范围是 0~255,如果超出范围会返回 256 的余数。
if 创建目录 then cd 目录 创建文件 else exit 1 fi
-
例子:在命令行上测试命令执行后的退出码
-
例子:在脚本中,返回的退出码是最后一条命令的退出码