1.查看退出状态码
按照惯例,对于成功结束的命令,其退出状态码是 0。对于因错误而结束的命令,其退出状态码是一个正整数:
$ date
Mon Jun 01 16:01:30 EDT 2020
$ echo $?
0
$
$ asdfg
-bash: asdfg: command not found
$ echo $?
127
$
Linux 退出状态码
0 命令成功结束
1 一般性未知错误
2 不适合的 shell 命令
126 命令无法执行
127 没找到命令
128 无效的退出参数
128+x 与 Linux 信号 x 相关的严重错误
130 通过 Ctrl+C 终止的命令
255 正常范围之外的退出状态码
exit 命令
exit 命令允许在脚本结束时指定一个退出状态码:
$ cat test13
#!/bin/bash
# testing the exit status
var1=10
var2=30
var3=$[ $var1 + $var2 ]
echo The answer is $var3
exit 5
$
$ chmod u+x test13
$ ./test13
The answer is 40
$ echo $?
5
$
也可以使用变量作为 exit 命令的参数:
$ cat test14
#!/bin/bash
# testing the exit status
var1=10
var2=30
var3=$[ $var1 + $var2 ]
exit $var3
$
运行这个脚本时,会产生如下退出状态码:
$ chmod u+x test14
$ ./test14
$ echo $?
40
$
使用这个功能时要小心,因为退出状态码最大只能是 255。来看下面这个例子:
$ cat test14b
#!/bin/bash
# testing the exit status
var1=10
var2=30
var3=$[ $var1 * $var2 ]
echo The value is $var3
exit $var3
$
现在运行它会得到如下输出:
$ ./test14b
The value is 300
$ echo $?
44
$