終了コードのみを設定する単純なBashコマンドはありますか?

終了コードのみを設定する単純なBashコマンドはありますか?

Mock終了コード処理をテストするときは、useなどのスクリプトの任意の終了コードをトリガーするのが便利なことがよくあります。終了コード0と1には組み込み関数がありますが、他の終了コードには暗黙のオプションしかありませんside_effect = Exception()。 :truefalse

  1. サブシェルの使用:(exit "$exit_code")費用がかかり、複雑で意図しない副作用がある可能性があります。新しいシェルを起動すると、数千行のコードが呼び出されることがありますが、終了コードを設定するための専用コマンドはほんの数行です。サブシェルは本番コードでは珍しい構成なので、初心者でもこのコードがexit "$exit_code"

  2. カスタム関数を作成して呼び出します。

    simulate_exit_code() {
        return "$1"
    }
    simulate_exit_code "$exit_code"
    

    安価ですが、複雑さが高いです。

かどうか尋ねた。より良いもの上記のオプションのどれが最良のものではありません(最初のものは簡潔さのためのもの、2番目のものはスピードのためのものです)。このような非常に簡単な組み込みコマンドがset_exit_code "$exit_code"理想的です。

ベストアンサー1

複雑なオプションは次のとおりです。

. /dev/stdin <<< 'return "$exit_code"'

(フォークしませんが、5.1+では一時ファイルまたはパイプを生成します)

完全性のために、

ksh93では、(exit "$ret")サブシェルは分岐しないため、比較的効率的です。

bashset_status() return "$1"簡単に書けないBourneのようなシェルの一つです。

ではzsh匿名関数を使用できます。

() return 3

このような必要がある場合は、個人的に以下を使用します。

set_status() { return "$1"; }

私にとっては、これが最も簡単なようです。

しかし、最終的に答えはこんな感じです終了コードを設定する単純なBashコマンドはありますか?はいいいえAFAIK。

おすすめ記事