Linux提供了特殊的变量吗? 保存上次执行的命令的结束状态代码。 对于需要检查的命令,是否需要在执行完成后立即显示或使用$? 变量。 该值是shell执行的最后一个命令的结束状态代码。
[root@host1 test]# date
2017年07月19日星期三: CST
[root@host1 test]# echo $?
正常情况下,成功结束的命令的结束状态代码为0。 如果在命令结束时发生错误,则结束状态代码为正值(1-255 )。
[root@host1 test]# qwert
- bash : qwert 3360 command not found
[root@host1 test]# echo $?
无效的命令返回结束状态代码127。 虽然没有必须遵循Linux错误退出状态代码的标准,但有以下引用:
Linux结束状态代码
状态代码说明
0命令已成功退出
1常见未知错误
2不正确的shell命令
126命令不能执行
127找不到命令
128无效的结束参数
128与xlinux信号x相关的严重错误
以130ctrlc退出的命令
255正常范围外的结束状态代码
结束状态代码126表示用户没有执行命令的正确权限。
[root@host1 test]# ./expect.sh
-bash:/expect.sh:权限不足
[root@host1 test]# echo $?
另一个常见的错误是为命令提供无效的参数。
[root@host1 test]# cd %
-bash: cd: 3360上没有该文件或目录
[root@host1 test]# echo $?
这将生成一般的结束状态代码1,指示命令发生未知错误。
缺省情况下,shell脚本以脚本中最后一个命令的结束状态代码结束。
[root@host1 test]# sh test.sh
This is a test file
[root@host1 test]# echo $?
您可以更改此默认行为以返回到自己的结束状态代码。 可以使用exit命令在脚本的末尾指定结束状态代码。
[root@host1 test]# cat test.sh
#! 心跳的微笑/bash
A=
B=
C=$[$A $B]
echo the number is $C
exit $C
[root@host1 test]# sh test.sh
the number is
[root@host1 test]# echo $?
这里直接使用c的值是exit的结束值,但也可以直接指定exit 30。 这是正确的。但是,请注意这个功能。 结束状态代码最多为255。 在下一个例子中会怎么样呢?
[root@host1 test]# cat test.sh
#! 心跳的微笑/bash
A=
B=
C=$[$A * $B]
echo the number is $C
exit $C
[root@host1 test]# sh test.sh
the number is
[root@host1 test]# echo $?
退出状态代码被缩短到0 ̄255的区间,壳牌通过模运算得到了这个结果。 一个值类型是被除尽的馀数。 最终的结果是指定的数值除以256的馀数。 在本例中,指定的值为300 (返回值),馀数为44,因此馀数是最后的状态退出代码。
Linux结束状态代码
命令成功结束的常见未知错误无法执行不正确的shell命令。 未找到命令的无效退出参数Linux信号x相关的严重错误以Ctrl C终止的命令正常范围外的退出状态代码
外壳中的结束状态代码
shell中的结束状态代码最多为255,超过此值时将进行剩余运算。 也就是说,运行以下命令: exit exitCode时,如果exitCode超过255,则实际状态代码为exitCode % 25 .
Perl处理和回收子流程lpar; 结束状态代码和waitrpar
本文来自关于处理子程序退出状态代码的内容主体的第21章。 子进程的结束状态代码每个子进程在结束时,操作系统都会保存它们的结束状态代码,并在内核维护的进程表中保存子进程的条目。
...linux系统状态查看/管理相关命令
系统状态查看命令: w 查看用户 top 系统进程监控 uptime 查看某台服务器运行了多久 htop 更加先进的交互式监控工具(需要安装) iotop 监控并实时显示磁盘IO输入和输出和程序进程( ...
Linux内核源码详解——命令篇之iostat[zz]
本文主要分析了Linux的iostat命令的源码,iostat的主要功能见博客:性能测试进阶指南——基础篇之磁盘IO iostat源码共563行,应该算是Linux系统命令代码比较少的了.源代码中主要 ...
【Linux】 源码安装make命令详解,避免踩坑
正常的编译安装/卸载: 源码的安装一般由3个步骤组成:配置(configure).编译(make).安装(make install). configure文件是一个可执行的脚本文件,它有很多选项, ...
Linux编程 22 shell编程(输出和输入重定向,管道,数学运算命令,退出脚本状态码)
1. 输出重定向 最基本的重定向是将命令的输出发送到一个文件中.在bash shell中用大于号(>) ,格式如下:command > inputfile.例如:将date命令的输出内容, ...
shell脚本之变量与状态码
目录: 前言 如何创建一个脚本 脚本调试 变量相关 变量的命令规则 bash中变量的种类 本地变量 环境变量 只读和位置变量 位置变量 查询变量 进程的退出状态与状态码 前言 在linux管理中,sh ...
Linux Shell学习笔记:exit退出状态代码
inux提供$?特殊变量来保存最后一条命令执行结束的退出状态.执行完一条命令后,立即执行echo$?,可以查看最后一条命令的退出状态值. 正常的情况下,命令成功执行完成的退出状态是0,如果非0,则命令 ...
随机推荐
kafka 集群安装与安装测试
一.集群安装 1. Kafka下载:wget https://archive.apache.org/dist/kafka/0.8.1/kafka_2.9.2-0.8.1.tgz 解压 tar zxvf ...
直接用bat命令对Inno Setup的脚本文件.iss进行编译
直接用bat命令对Inno Setup的脚本文件.iss进行编译 2010-06-17 15:17 qjn0059 | 浏览 2163 次 编程语言外语学习 分享到: 2010-06-29 11: ...
转: Android 后台任务型App多进程架构演化
评注:android 后台分进程保活方式的实践 Android 后台任务型App多进程架构演化 字数1621 阅读2790 评论8 喜欢35 什么是后台任务型app 类似音乐.录音机,需要用户长时间在 ...
util-C# 复杂条件查询(sql 复杂条件查询)查询解决方案
ylbtech-funcation-util: C# 复杂条件查询(sql 复杂条件查询)查询解决方案 C# 复杂条件查询(sql 复杂条件查询)查询解决方案 1.A,Ylbtech.Model返回 ...
使用java的Calendar对象获得当前日期的上几个度开始、结束时间
思路: 先获得当前季度的开始和结束日期,在当前日期的基础上往前推3个月即上个季度的开始和结束日期 /** * @param flag true:开始日期:false:结束日期 * @return */ ...
thinkphp action.class.php 学习
控制器类(Action) 描述 Description ThinkPHP Action控制器基类 抽象类 位置:ThinkPHP/Lib/Core/Action.class.php 声明: abstr ...
64位操作系统 注册 capicom.dll
把capicom.dll 放到c:windowssyswow64目录 以管理员身份运行c:windowssyswow64cmd.exe 执行 regsvr32 capicom.dll ...
C++学习-10
类型转换:自动转换,显示转换,强转 总结:CPP编译的时候,从上往下,遇到不匹配,声明扩展了一个类的作用域(此时最多只能创建类的指针或者引用), 由于没有定义是不可能使用到类的成员 完 ...
Android Studio教程10-Intent的详细使用
目录 1. Intent启动器 1.1. Intent的用途 1. 启动Activity 3. 传递广播 1.2. Intent类型 1.显示Intent 2.隐式Intent 2. 构建Intent ...
tab 切换实现方法
ul li 实现方法(只适用于,一个页面只有一组ul>li)