Bashスクリプトの上部にある「#!/bin/bash -eu」の「-eu」とはどういう意味ですか? (または `-abefhkmnptuvxBCHP`)

Bashスクリプトの上部にある「#!/bin/bash -eu」の「-eu」とはどういう意味ですか? (または `-abefhkmnptuvxBCHP`)

Bashスクリプトの一番上のeu次はどういう意味ですか?#!/bin/bash -eu

通常、私はこれでbashスクリプトを起動します。ハッシュバン/シバン:

#!/bin/bash

しかし、私は誰かに会いました。

#!/bin/bash -eu

なぜそこに1つがあるのか​​わかりません-eu。このman bashページを読むことは私には役に立たないようですが、おそらく私が何かを見落としているようです。


繰り返さない:

これは重複ではありません"set -eu"を使用した場合のEXITおよびERRトラップの正しい動作

この質問の下のコメントに@ilkkachuを引用してください。、この問題を直接解決してください。

... -eと-uがトラップまたは他のエントリを処理する方法は、そのオプションと他の単一文字オプションがコマンドラインにどのように提供されるかとまったく関係ありません。

私はこれに同意します。これらは異なる動機を持つ異なる質問と回答です。この質問はあまりにも異なり、私が私の質問に対する答えを理解しようとしたときにタイトルや説明を見てクリックすることさえ考えていないほど、答えも非常に異なります。

ベストアンサー1

-e彼らはの-uようなオプションですset内蔵。また、シェルのコマンドラインに提供するか、hashbang行のコマンドライン引数として提供することもできます。 (しかし、例えば質問に注意してください。Shebangの複数のパラメータ)

オンラインマニュアルには次のように記載されています。「バッシュに電話して」、それ

set組み込み関数で使用されるすべての単一文字オプションは、シェル呼び出し時にオプションとして使用可能です。

単一文字オプションは、オンラインマニュアル()の呼び出しの要約にも明示的にリストされていますが、マンbash [long-opt] [-abefhkmnptuvxdBCDHP] [-o option] ... ページにはリストされていません。

set -u設定されていないパラメータ拡張をエラーとして処理するようにシェルに指示します。これは変数名などのタイプミスをキャッチするのに役立ちます。

set -eコマンドがエラーで終了した場合(終了値が別途テストされない限り)、シェルに終了するように指示します。場合によっては、各コマンドの状態を明示的にテストすることなく、エラーが発生したときにスクリプトを中断することができます。

おすすめ記事