Googleのシェルスタイルガイドでは、シェルオプションを設定するために「set」を使用することをお勧めします。

Googleのシェルスタイルガイドでは、シェルオプションを設定するために「set」を使用することをお勧めします。

Googleのシェルスタイルガイド:

Bashは、実行可能ファイルの実行を許可する唯一のシェルスクリプト言語です。

実行可能ファイルは#!/bin/bash最小限のフラグで始まる必要があります。setスクリプトを呼び出してもbash script_name機能が中断されないように、シェルオプションを設定するために使用されます。

set特に機能の損傷を防ぐために使用する部分です。このように特定のやり方で呼ぶことはそれと何が関係していますか?

答え1

「最小フラグ数」は、ハッシュバン行に設定されたフラグを示す。スクリプトの起動時に読み込まれ、./somescriptカーネルはhashbang行を読み取り、そこにあるパスとオプションから新しい引数のリストを作成します。しかし、はいいいえbash somescriptスクリプト自体ではなくカーネルを実行する必要があるため、スクリプトが実行されると、これが発生する可能性がbashあります。シェル自体は、この行を最終的にスクリプトを読み取るときに無視されるコメントとして扱います。

たとえば、次のスクリプト(./hello)を試してみてください。

#!/bin/bash -x
echo hello

2 つの方法で実行します。

$ ./hello
+ echo hello
hello
$ bash hello
hello

-x追加のトレース出力は最初の場合にのみ表示され、2番目の呼び出しではフラグは無視されます。

コマンドを使用してsetフラグを明示的に有効にすると、次のように動作します。

#!/bin/bash
set -x
echo hello

(しかし、使用しようとすると注意してくださいperlするまた、ハッシュバンライン自体についても説明します。 )

関連情報