命令的退出状态
时间:2019-04-16 23:59:04 来源:igfitidea点击:
每个Linux命令在正常或异常终止时都会返回一个状态。
在shell脚本中可以使用exit status的值来显示错误消息或者继续执行某种操作。
例如,如果tar命令执行不成功,它将返回一个代码,shell脚本可以通过它来判断是否向sysadmin发送一封电子邮件。
退出状态
- 每个Linux命令(不管是shell脚本执行还是用户执行的)都有一个退出状态。
- 退出状态是一个整数。
- Linux手册说明了每个命令的退出状态。
- 退出状态0表示命令成功,没有任何错误。
- 非零(1-255个值)的退出状态表示命令执行失败。
- 可以使用特殊的shell变量
$?
获取之前命令的退出状态。
[root@rhel6 ~]# echo $? 0 [root@rhel6 ~]# date # 运行date命令 Wed Apr 8 08:57:48 CST 2010 [root@rhel6 ~]# echo $? # 查看退出状态 0 [root@rhel6 ~]# foobar123 # 不是有效的命令 -bash: foobar123: command not found [root@rhel6 ~]# echo $? # 查看退出状态 127 [root@rhel6 ~]#
可以看到,执行foobar123时,返回的状态码是127,对应错误信息是 command not found
如何将命令的退出状态存储在Shell变量中?
将$?
赋给shell变量:
ls -l /tmp status=$? echo "ls 命令的退出状态是: $status"