Linux Shell学习笔记:exit退出状态代码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_26591517/article/details/82492829

inux提供$?特殊变量来保存最后一条命令执行结束的退出状态。执行完一条命令后,立即执行echo$?,可以查看最后一条命令的退出状态值。

正常的情况下,命令成功执行完成的退出状态是0,如果非0,则命令执行有错。

该命令可以用于检查命令是否正确执行,比如在解压包的时候,检查解压包是否成功十分有效。

自定义退出状态码,可以在脚本中定义自己的退出状态代码,然后使用echo $?检查。

退出状态码最高是255,一般自定义的代码值为0~255,如果超出255,则返回该数值被256除了之后的余数。

退出状态代码:

0 命令成功完成

1通常的未知错误

2误用shell命令

126命令无法执行

127没有找到命令

128无效的退出参数

128+x使用Linux信号x的致命错误。

130使用Ctrl-C终止的命令

255规范外的退出状态

ubuntu下测试结果如下

wl@wl-MS-7673:/home/python$ date

2013年 11月 14日 星期四 19:12:45 CST

wl@wl-MS-7673:/home/python$ echo $?

0

wl@wl-MS-7673:/home/python$ kkllk

kkllk: command not found

wl@wl-MS-7673:/home/python$ echo $?

127

wl@wl-MS-7673:/home/python$ ls

hello.py hello.py~

wl@wl-MS-7673:/home/python$ vim a.c

wl@wl-MS-7673:/home/python$ ls

hello.py hello.py~

wl@wl-MS-7673:/home/python$ gedit a.c

wl@wl-MS-7673:/home/python$ ./hello.py

bash: ./hello.py: 权限不够

wl@wl-MS-7673:/home/python$ echo $?

126

wl@wl-MS-7673:/home/python$ date %t

date: 无效的日期"%t"

wl@wl-MS-7673:/home/python$ echo $?

1

wl@wl-MS-7673:/home/python$


 

root@wl-MS-7673:~# ls -sail test

790207 4 -rwxr--r-- 1 root root 30 11月 14 19:25 test

root@wl-MS-7673:~# ./test

root@wl-MS-7673:~# echo $?

44

root@wl-MS-7673:~# cat test

#!/bin/bash

var=300

exit $var

root@wl-MS-7673:~#

猜你喜欢

转载自blog.csdn.net/qq_26591517/article/details/82492829