代码之家  ›  专栏  ›  技术社区  ›  Paolo.Bolzoni

程序退出状态的通用解决方案

  •  8
  • Paolo.Bolzoni  · 技术社区  · 6 年前

    我现在在bash中编程,我使用 set -e 因为在程序失败时继续执行脚本几乎是不需要的行为。

    当它是我用的时候 ||true 如果我不需要退出代码。

    如果我需要退出代码,我会像这样包装执行:

    set +e
    call_I_need_the_exit_code with few arguments
    RV="$?"
    set -e
    # use "$RV" somewhat
    

    但是,它很冗长,我很少切换 set +e 集合E 引入令人讨厌的错误。

    有没有一种方法可以生成一个执行命令的函数,并在退出代码中设置一个已知变量?

    类似于此(伪代码):

    safe_call( call_I_need_the_exit_code(with, few, arguments) )
    # use "$RV" somewhat
    

    哪里 safe_call 基本上是执行前面的代码块。这将使我的代码更容易编写和读取…

    1 回复  |  直到 6 年前
        1
  •  5
  •   tripleee    6 年前

    || true set -e

    command && rv=0 || rv=$?
    

    avoid uppercase for your private variables.