Bash関数の `set -e`

Bash関数の `set -e`

set -eここでは動作が異なります

set -e;

function foo {

}

そして

function foo {
  set -e;

}

set -e関数の内部に属していますか?関数の外部で宣言すると、set -eシェルファイル内の「入れ子になった」関数に影響しますか?その逆はどうですか?電話しますかlocal set -e

ベストアンサー1

注:ここの説明はBashバージョン4.0.35以降に適用されます。実装set -e さまざまなシェル/バージョン間の大きな違い。フォローするスティーブンのアドバイスそしてそれを使用しないでくださいset -e

man bashShellの組み込みコマンド/セクションsetの内容はよく説明されていますが、テキストは少し緻密で少し集中する必要があります。あなたの特定の質問に対する答えは次のとおりです。

  • 何か別のことをしてみてくださいset -e...一緒に..- 「違う」は言葉の意味によって異なりますが、厳しい範囲指定規則なしで答えは「いいえ」と思うようです。これは非常に直線的に機能します。
  • set -eは関数の内部に属していますか?- 完全に有効です。
  • 関数の外部で宣言されたset -eは、シェルファイル内の「入れ子になった」関数に影響しますか?- はい
  • その逆はどうですか?- 関数からset -e返された後、ゼロ以外の状態が発生しますか?はい、終了します。

おすすめ記事