shell脚本执行返回的状态码,shell返回值环境变量之shell将其返回值赋值给$?环境变量,以及在Mysql备份导出mysqldump中的使用示例。

jackxiang 2016-4-11 16:25 | |
背景:shell在执行一些程序时,其返回值影响后面用&&或||来进行判断,特别是以rpmbuild来举例说明,其在post和postun用到一些删除某些服务啥的,出现返回值不是1,导致rpm -e xxx,出现错误,卸载报错 /var/tmp/rpm-tmp.ELL6uY: line 3:   /sbin/chkconfig: No such file or directory,这些都是和这个shell返回值有很大关系的。
返回值,失败示例,返回1值:

shell执行成功示例,返回0值:


二、在Mysql备份导出mysqldump中的使用示例:


=========================================================
     每个命令都有一个返回值(返回状态或者退出状态)。命令执行成功的返回值总是0(零值),执行失败的命令,返回一个非0值(错误码)。错误码必须是一个1到255之间的整数。
在编写脚本时,另一个很有用的命令是exit。这个命令被用来终止当前的执行,并把返回值交给shell。当exit不带任何参数时,它会终止当前脚本的执行并返回在它之前最后一个执行的命令的返回值。
一个程序运行结束后,shell将其返回值赋值给$?环境变量。因此$?变量通常被用来检测一个脚本执行成功与否。
与使用exit来结束一个脚本的执行类似,我们可以使用return命令来结束一个函数的执行并将返回值返回给调用者。当然,也可以在函数内部用exit,这 不但 会中止函数的继续执行,而且 会终止整个程序的执行。

摘自:https://github.com/liushuaikobe/bash-handbook-zh-CN#%E4%BA%A4%E4%BA%92%E6%A8%A1%E5%BC%8F



Linux下一条命令或一个进程执行完成会返回一个一个状态码。

0   ===   成功执行

非0 ===  执行过程中出现异常或非正常退出

在Shell脚本中 最后执行的一条命令将决定整个shell脚本的状态. 此外 shell的内部命令exit也可以随时终止shell脚本的执行,返回Shell脚本的状态码

当shell脚本执行结束前 的最后一个命令是不带参数的exit ,那么 shell脚本的最终返回值 就是 exit 语句前一条语句的返回值,根据这个值可以判断脚本成功执行与否。

$? 可以查看 最后一条命令的返回值 该变量可以在shell 脚本中的任何地方使用.


来自:http://www.cnblogs.com/MyEyes/archive/2012/01/12/2320529.html

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/8625/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2017-8-6 23:47
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]