シェルスクリプトの関数から終了ステータスをキャプチャする

アンバレーシュ

非常に単純なスクリプトがあります。

test.sh

_EXECUTE_METHOD () {
  exit 1
}

_EXECUTE_METHOD
ERROR_CODE=$?
if [[ $ERROR_CODE -eq 1 ]]; then
  echo "Got error"
  exit 0
fi

このスクリプトexit 1は、関数内で実行されるとすぐに終了します。この終了ステータスを関数から取得し、メインスクリプトで処理したいと思います。

私はset -eを試しましたがset +e、まだ成功していません。returnステートメントは使用できません

実際の出力:

$ sh test.sh 
$ echo $?
1
$

実際の出力:

$ sh test.sh
Got error 
$ echo $?
0
$
anubhava

関数内ではreturnなく、次を使用する必要がありexitます。

_EXECUTE_METHOD () { return 1; }

_EXECUTE_METHOD
ERROR_CODE=$?
if [[ $ERROR_CODE -eq 1 ]]; then echo "Got error"; fi

exit現在のシェルを終了します。使用する必要がある場合は、次のようにexitこの関数をスクリプトまたはサブシェルに配置します。

declare -fx _EXECUTE_METHOD
_EXECUTE_METHOD () { exit 1; }

( _EXECUTE_METHOD; )
ERROR_CODE=$?
if [[ $ERROR_CODE -eq 1 ]]; then echo "Got error"; fi

(..)サブシェルで関数を実行するため、サブシェルexitのみを終了します。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

シェルスクリプトのHH:MM形式の引数から値をキャプチャする方法

分類Dev

Javaのシェルコマンドの終了ステータスをキャプチャする方法

分類Dev

シェルスクリプトでGradle終了コードをキャプチャする方法は?

分類Dev

シェルスクリプトからnode.jsのエラー終了コードをキャッチすることは可能ですか?

分類Dev

Rでシステムコールからの終了ステータスと出力の両方をキャプチャする

分類Dev

別のデスクトップからスクリーンショットをキャプチャする

分類Dev

シェルスクリプトからSparkエラーをキャッチする方法

分類Dev

キュウリ/アルバからのシェルスクリプトプログラム出力をキャプチャする方法は?

分類Dev

外部スクリプト内の関数からエラーをキャッチ

分類Dev

groovyスクリプトを使用してSoapUIのテストケースからスクリプトログをキャプチャする

分類Dev

perlスクリプト内で別のperlスクリプトを呼び出すキャプチャの終了ステータスをキャプチャする方法と失敗した場合は死ぬはずです

分類Dev

タプルから関数の引数をキャストする方法は?

分類Dev

httpPOSTリクエストのフラッターでTextFormFieldからデータをキャプチャする

分類Dev

出力をキャプチャしながらCrystalでシェルスクリプトを実行する方法

分類Dev

ブランチキャッシュステータスのみを取得するPowershellスクリプト

分類Dev

シェルスクリプトでBash出力を変数にキャプチャする

分類Dev

シェルスクリプトでエラーをキャッチすることをスキップする

分類Dev

オプションのキャラクターのリストを使用して、キャプチャ以外のグループを追加できますか?

分類Dev

プロセス置換で変数を宣言するときに、サブシェルの終了コードをキャプチャできますか?

分類Dev

postgres関数/プロシージャ/トリガーからBashスクリプト(シェルスクリプト)を実行します

分類Dev

Expectスクリプトの終了コードをキャプチャします

分類Dev

スクリプトのヘルプを期待する-sendコマンドからデータをキャプチャする

分類Dev

シェルコマンドのクリスタル言語を実行し、出力をキャプチャする

分類Dev

テキスト付きのシェルスクリプトからエディターを起動する

分類Dev

Jenkinsパイプラインからのシェルスクリプト出力のキャプチャ

分類Dev

bashスクリプトで正規表現からグループをキャプチャする

分類Dev

ラムダキャプチャリスト:オブジェクト全体をキャプチャしないと、オブジェクトのメンバーフィールドを値でキャプチャすることはできませんか?

分類Dev

キャプチャリストの使用を回避するための関数スコープ変数の設定

分類Dev

テーブルタグ内のクラスをキャプチャし、複数のアイテムをキャプチャする

Related 関連記事

  1. 1

    シェルスクリプトのHH:MM形式の引数から値をキャプチャする方法

  2. 2

    Javaのシェルコマンドの終了ステータスをキャプチャする方法

  3. 3

    シェルスクリプトでGradle終了コードをキャプチャする方法は?

  4. 4

    シェルスクリプトからnode.jsのエラー終了コードをキャッチすることは可能ですか?

  5. 5

    Rでシステムコールからの終了ステータスと出力の両方をキャプチャする

  6. 6

    別のデスクトップからスクリーンショットをキャプチャする

  7. 7

    シェルスクリプトからSparkエラーをキャッチする方法

  8. 8

    キュウリ/アルバからのシェルスクリプトプログラム出力をキャプチャする方法は?

  9. 9

    外部スクリプト内の関数からエラーをキャッチ

  10. 10

    groovyスクリプトを使用してSoapUIのテストケースからスクリプトログをキャプチャする

  11. 11

    perlスクリプト内で別のperlスクリプトを呼び出すキャプチャの終了ステータスをキャプチャする方法と失敗した場合は死ぬはずです

  12. 12

    タプルから関数の引数をキャストする方法は?

  13. 13

    httpPOSTリクエストのフラッターでTextFormFieldからデータをキャプチャする

  14. 14

    出力をキャプチャしながらCrystalでシェルスクリプトを実行する方法

  15. 15

    ブランチキャッシュステータスのみを取得するPowershellスクリプト

  16. 16

    シェルスクリプトでBash出力を変数にキャプチャする

  17. 17

    シェルスクリプトでエラーをキャッチすることをスキップする

  18. 18

    オプションのキャラクターのリストを使用して、キャプチャ以外のグループを追加できますか?

  19. 19

    プロセス置換で変数を宣言するときに、サブシェルの終了コードをキャプチャできますか?

  20. 20

    postgres関数/プロシージャ/トリガーからBashスクリプト(シェルスクリプト)を実行します

  21. 21

    Expectスクリプトの終了コードをキャプチャします

  22. 22

    スクリプトのヘルプを期待する-sendコマンドからデータをキャプチャする

  23. 23

    シェルコマンドのクリスタル言語を実行し、出力をキャプチャする

  24. 24

    テキスト付きのシェルスクリプトからエディターを起動する

  25. 25

    Jenkinsパイプラインからのシェルスクリプト出力のキャプチャ

  26. 26

    bashスクリプトで正規表現からグループをキャプチャする

  27. 27

    ラムダキャプチャリスト:オブジェクト全体をキャプチャしないと、オブジェクトのメンバーフィールドを値でキャプチャすることはできませんか?

  28. 28

    キャプチャリストの使用を回避するための関数スコープ変数の設定

  29. 29

    テーブルタグ内のクラスをキャプチャし、複数のアイテムをキャプチャする

ホットタグ

アーカイブ