1. ホーム
  2. bash

[解決済み] シェルスクリプトの例外処理?

2023-06-18 13:37:02

質問

シェルスクリプトで例外を処理する機構を探しています。シェルスクリプトでtry,catchに相当する機構はないのでしょうか?

どのように解決するのですか?

実際には try/catch は存在しませんが (あなたは bash を使っているのでしょう)、非常によく似た動作を && または || .

この例では fallback_command もし a_command 失敗 (0でない値を返す)。

a_command || fallback_command

そして、この例で実行したいのは second_command もし a_command が成功した場合 (0を返す)。

a_command && second_command

これらはサブシェルを使うことで簡単に混在させることができます。例えば、次のようなコマンドを実行すると a_command を実行し、それが成功した場合は other_command を実行しますが、もし a_command または other_command は失敗します。 fallback_command が実行されます。

(a_command && other_command) || fallback_command