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