shell中返回退出代码的2个数字的非零值

时间:2017-05-10 17:53:54

标签: shell unix aix

所以这是我的情况。

我希望能够退出具有非零值的RC / RC1。当RC为0时执行以下代码时RC1返回非零退出代码(最佳情况)如果RC非零并且RC1也非零,我将错过RC1的退出代码(意味着我不会能够使用RC1的退出代码)。如何发送正确的退出代码?本质上我想通过电子邮件发送非零变量

if [ $RC -ne 0 ] || [ $RC1 -ne 0 ]; then
        if [ $RC -ne 0 ]; then
        exit $RC
        else
        exit $RC1
fi

1 个答案:

答案 0 :(得分:1)

您想同时返回两个退出代码吗?我想,在驾驶汽车时,你也想同时坐在前排座椅和后排座椅上。你可以做到这一点,但你需要一辆特殊的汽车。以下是制作这样一款车的两个想法:

  • 如果您知道在此上下文中每个退出代码必须是1位数字,您可以返回类似$((RC*10+RC2))的内容 - 我在这里使用bash / zsh语法,因为您没有说你正在使用哪个shell。如有必要,您必须将其改编为您的shell。

  • 如果至少有一个是非零的话,你可以通过打印“$ RC1 $ RC2”之类的东西来调整你的脚本界面,即:

    if [ $RC -ne 0 ] || [ $RC1 -ne 0 ]; then
      echo "$RC $RC1" 1>&2
      exit 1
    else
      exit 0
    fi
    

在这两种情况下,调用进程必须拆除组合的退出代码以取回原始代码。