shell 检测命令执行结果状态代码返回值

检测 命令执行结果


0、1、2、126、127、128、130、255 是系统已经定义的状态码,
其中只有 0 表示成功,其它值都表示失败
自定义时应该避开这些状态码,虽然占用系统定义好的也没什么关系,
但也尽量避免未知的冲突。


状态码取值范围 0 ~ 255
如果值大于 255 ,则会用值一直减去255,直到获得一个小于255的值


代码:

function fun_checkExitValue() {
      get_return=$1   ## 获取程序的返回值
      msg_val=$2  ## 自定义 显示错误值
      msg_str=$3  ## 自定义 显示错误提示
      case $get_return in
          0)
              ## 返回0则正常,不做任何操作。不写此项,会导致$1值被*)项捕获。
              ## 命令正常退出
              echo "命令运行成功"
          ;;
          1)
              echo ""
              echo "${get_return}"
              echo "${msg_val} --> ${msg_str}"
              echo ""
              exit         ## 用于退出脚本
              # exit -30   ## 用于退出脚本,带退出值
              # return -1  ## 用于退出函数
              # read       ## source 方式使用 exit 和 return 会退出终端
                           ##  所以用read目的是让程序停下来,方便查看问题,可以用 Ctrl + C 结束退出
                           ## exit, return, read 根据实际情况启用
          ;;
          2)
              echo ""
              echo "${get_return}"
              echo "${msg_val} --> ${msg_str}"
              echo ""
              exit
              # exit -30
              # return -2 
              # read 
          ;;
          126)
              echo ""
              echo "${get_return}"
              echo "${msg_val} --> ${msg_str}"
              echo ""
              exit
              # exit -30
              # return -126
              # read
          ;;
          127)
              echo ""
              echo "${get_return}"
              echo "${msg_val} --> ${msg_str}"
              echo ""
              exit
              # exit -30
              # return -127
              # read
          ;;
          128)
              echo ""
              echo "${get_return}"
              echo "${msg_val} --> ${msg_str}"
              echo ""
              exit
              # exit -30
              # return -1
              # read
          ;;
          130)
              echo ""
              echo "${get_return}"
              echo "${msg_val} --> ${msg_str}"
              echo ""
              exit
              # exit -30
              # return -130 
              # read
          ;;
          255)
              echo ""
              echo "${get_return}"
              echo "${msg_val} --> ${msg_str}"
              echo ""
              exit
              # exit -30
              # return -255
              # read
          ;;
          *)
              echo ""
              echo "${get_return}"
              echo "${msg_val} --> ${msg_str}"
              echo ""
              exit
              # exit -30
              # return -1
              # read 
          ;;
    esac
}



函数调用:

ls /bin
fun_checkExitValue  $?  33 "error lakjdlf"

shell 状态码说明:https://www.cnblogs.com/wutou/p/17494355.html


参考:
http://c.biancheng.net/view/1145.html



posted @ 2023-06-21 12:20  悟透  阅读(1481)  评论(0)    收藏  举报