shell 中带有 return 退出代码的 2 个数字的非零值

non-zero value of 2 numbers with a return exit code in shell

这是我的情况。

我希望能够退出具有非零值的 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

您想同时 return 两个退出代码?我猜想,开车的时候,你也想同时坐在前座和后座上。你可以做到,但你需要一辆特殊的汽车。以下是制造这种汽车的两个想法:

  • 如果您知道在这种情况下每个退出代码必须是一位数字,您可以 return 类似于 $((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
    

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