栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux 退出状态码

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux 退出状态码

Linux 退出状态码

Linux shell 中运行的每一个命令都使用 退出状态码 来告诉shell命令已运行完毕。退出状态码值 0~255。
Linux 提供了一个专门的变量 $? 来保存上一个执行命令的退出状态码。

zzz@ubuntu:~/my_learning$ echo $?
0
zzz@ubuntu:~/my_learning$ pwd
/home/zzz/my_learning
zzz@ubuntu:~/my_learning$ echo $?
0
zzz@ubuntu:~/my_learning$ pwds

Command 'pwds' not found, did you mean:

  command 'pwdx' from deb procps (2:3.3.16-1ubuntu2.3)
  command 'pwd' from deb coreutils (8.30-3ubuntu2)
  command 'pads' from deb pads (1.2-12)
  command 'pods' from deb pmtools (2.2.0-1)

Try: sudo apt install 

zzz@ubuntu:~/my_learning$ echo $?
127
zzz@ubuntu:~/my_learning$ 

可以看到,当命令正确执行完毕后,退出状态码是0。如果命令结束时有错误,退出状态码是正值。
一些常见的状态码含义:

状态码描述
0命令成功结束
1一般性未知错误
2不适合的shell命令
126命令不可执行
127没找到命令
128无效的退出参数
128+x与Linux信号x相关的严重错误
130通过Ctrl+C终止的命令
255正常范围之外的退出状态码

指定退出状态码
默认情况下,shell脚本会以脚本的最后一个命令的退出状态码退出。但是,可以使用 exit 命令来指定退出状态码。

zzz@ubuntu:~/my_learning$ vim test.sh
zzz@ubuntu:~/my_learning$ cat test.sh 
#!/bin/bash

a=1
zzz@ubuntu:~/my_learning$ . test.sh 
zzz@ubuntu:~/my_learning$ echo $?
0
zzz@ubuntu:~/my_learning$ vim test.sh
zzz@ubuntu:~/my_learning$ cat test.sh 
#!/bin/bash

a=1
exit 10
zzz@ubuntu:~/my_learning$ bash test.sh 
zzz@ubuntu:~/my_learning$ echo $?
10
zzz@ubuntu:~/my_learning$ 
zzz@ubuntu:~/my_learning$ vim test.sh 
zzz@ubuntu:~/my_learning$ cat test.sh 
#!/bin/bash

a=1
exit 300
zzz@ubuntu:~/my_learning$ chmod u+x test.sh 
zzz@ubuntu:~/my_learning$ ./test.sh 
zzz@ubuntu:~/my_learning$ echo $?
44
zzz@ubuntu:~/my_learning$

可以看到,当指定的退出状态码的值超过255的范围时,会被缩减到0~255之间。最终的结果将是指定的值除以256后得到的余数。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/888577.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号