退出码
exit 被用来结束一个脚本,它也返回一个值,这个值会传递给脚本的父进程,父进程会使用这个值做下一步的处理。
每个命令都会返回一个 退出状态码 (有时候也被称为 返回状态 ). 成功的命令返回0, 而不成功的命令返回非零值, 非零值通常都被解释成一个错误码. 行为良好的UNIX命令, 程序, 和工具都会返回0作为退出码来表示成功, 虽然偶尔也会有例外
同样的, 脚本中的函数和脚本本身也会返回退出状态码. 在脚本或者是脚本函数中执行的最后的命令会决定退出状态码. 在脚本中, exit nnn命令将会把nnn退出码传递给shell(nnn必须是十进制数, 范围必须是0 - 255)
当脚本以不带参数的exit命令来结束时, 脚本的退出状态码就由脚本中最后执行的命令来决定(就是exit之前的命令)
不带参数的exit命令与 exit $?的效果是一样的, 甚至脚本的结尾不写exit, 也与前两者的效果相同
ex-退出和退出码:
#!/bin/bash echo hello echo $? echo lskdf echo $? echo exit 113
运行结果:hello 0 exit-test.sh: line 8: lskdf: command not found 127
运行完成后查看退出码:
$ echo $? 113
ex2-反转条件:运行结果:#!/bin/bash # inversion-condition.sh true echo "exit status of \"true\" = $?" ! true echo "exit status of \"!true\" = $?"
exit status of "true" = 0 exit status of "!true" = 1