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$ pwdsCommand '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 <deb name>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/basha=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/basha=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/basha=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后得到的余数。
Linux 退出状态码相关推荐
- bash-shell高级编程--退出和退出状态码
退出和退出状态码 大家都知道exit是用来退出一个脚本,既可以使用exit来结束一个脚本,像常用的C语言一样,它也会返回一个值,这个值会传递给脚本的父进程,父进程会使用这个值做下一步的处理. 其实在l ...
- python状态码及其含义_Shell退出状态码及其应用详解
Shell 中运行的命令会使用0-255之间的整数值,作为退出状态码,并以此来告知shell该命令执行的状态.通常情况下,约定0代表命令成功结束,非0代表程序非正常退出. 典型退出状态码及其含义 退出 ...
- Shell程序退出状态码的命令详解
在本篇文章当中主要给大家介绍了一些常见的程序退出的状态码!并且给出一下例子帮助大家仔细理解,并且使用C语言和python语言实现获取子进程退出时候的退出状态码. 程序退出状态码 前言 在本篇文章当中主 ...
- bash shell中的退出状态码
shell中运行的每个命令都使用退出状态码告诉shell它已经运行完毕.提出状态码是一个0-255的整数值,在命令结束运行时有命令传给shell.可以捕获这个值并在脚本中使用. Linux提供了一个专 ...
- bash之流程控制for循环及bash命令退出和退出状态码
一.for循环定义: 将一段代码反复执行:----->进入条件;------> 退出条件; 二.语法格式: for 变量名 in LIST do statement1 ... done f ...
- Docker 容器退出状态码existed
今天在起容器的时候,发现容器出于existed状态,状态码为130,查找后发现,自己启动的时候使用了非后台启动.当手动 ctrl+C 退出命令行的时候,容器也就退出了.开始的时候,不知道状态码含义,纠 ...
- Docker容器的退出状态码及解决方法
容器内应用启动异常, 导致容器很快就结束或者构建镜像时失败了等问题 会出现的情况: 容器处于Exited异常退出时,将无法用docker exec进入容器内,会提示该容器不在运行中 docker lo ...
- Docker 容器的退出状态码及重启策略
Docker 容器的退出状态码: 0:表示正常退出 非 0:表示异常退出(退出状态码采用 chroot 标准) 125:Docker 守护进程本身的错误 126:容器启动后,要执行的默认命令无法调用 ...
- Linux shell 学习笔记(7)— 构建基本脚本(变量、重定向、管道、状态码)
1. 使用多个命令 如果要两个命令一起运行,可以把它们放在同一行中,彼此间用分号隔开. $ date ; who Mon Feb 21 15:36:09 EST 2014 Christine tty2 ...
最新文章
- RSA签名算法,计算调用加密报文,安全传输
- mysql中文乱码问题的解决方案
- boost::contract模块实现断言等级的测试程序
- win10系统预览体验计划错误代码0x800bfa19怎么办
- python batchnorm2d_PyTorch中的BatchNorm2d层
- Django基础学习笔记:初识MTV模式
- Python Mysql学习总结
- iterator adapter reverse_iterator
- 自动把动态的jsp页面(或静态html)生成PDF文档,并且上传至服务器
- C#上位机工作感想2(2020.4.15-2021.7.24)
- 如何将DVD的vob视频格式转换成mp4格式
- 计算机仿真和vr的区别,扫盲科普:今天才知道VR和AR的区别
- 前端录屏工具开发--可用于工程化错误回放
- 二维码防伪系统开发-实现了产品信息防伪的高效性
- 系统架构设计师论文历年考题(2015-2017)考前冲刺来一波真题
- 智能井盖被纳入《城市综合管廊运营服务规范》国标,喜大普奔
- oracle sqlnet配置,sqlnet.ora文件配置详解
- 《单核工作法图解》阅读摘要
- 今年世界杯预测(阿根廷队冠军)
- 外行人如何通过学习软件测试转行IT