跳到主要内容

1 篇博文 含有标签「exitcode」

查看所有标签

· 阅读需 3 分钟

编写shell脚本的时候,正确使用返回值是运维人员的基本操守

1.常见返回值

下表列出了常见shell命令的退出返回值:

返回值含义示例说明
1各种常见错误let "var1 = 1/0"shell里面最常见的错误返回值
2shell内建功能使用错误empty_function() 常见于关键字或者命令出错
126命令无法执行/dev/null由于权限等导致的命令无法执行
127命令无法找到illegal_command一般是PATH环境变量不对等
128退出返回值错误exit 3.14159返回值只能是整数,小数就不对了
128+n信号 "n"+128kill -9 $PPID of script$? 即返回 137 (128 + 9)
130ctrl+c 退出Ctl-C其实ctrl+c返回的是2 (130 = 128 + 2)
255*返回值超出可接受的范围exit -1只能是 0 - 255

2. init标准返回值

下表列出了关于/etc/init.d/目录下启动控制脚本的标准返回值:

  • 0 程序在运行或者服务状态OK
  • 1 程序已经死掉,但是 pid文件仍在 /var/run目录下存在
  • 2 程序已经死掉,但是lock文件仍在 /var/lock 目录下存在
  • 3 程序没有运行
  • 4 程序运行状态未知
  • 5-99 供LSB扩展的保留段
  • 100-149 供特定系统发行版使用的保留段
  • 150-199 供特定程序使用的保留段
  • 200-254 保留段

3. 建议返回值

在写shell脚本的时候需要注意自定义的退出返回值最好不要与上面表格中所定义的重复,对于管理人员来说养成良好的习惯有助于遇到错误时作出正确的判断。 根据上表至少可以得出,在自定义返回值的时候:

  • 最好不要用的:0-4 126-130 255
  • 应避免使用的:5-99
  • 可随意使用的:100-125 131-254

参考文档: