回答:
からman bash
(はい、それは大きなmanページで、通常はGoogle検索が高速です):
-x
コマンド、ケースコマンド、選択コマンド、またはコマンドの算術演算の各単純コマンドを展開した後、PS4の展開値を表示し、その後にコマンドとその展開引数または関連する単語リストを表示します。
効果的に:スクリプトを実行すると、そのスクリプトで実行されたすべてのアクションが表示されます。したがって、すべてのifs、ループ、およびコマンドが実行されます。デバッグに非常に役立ちます。
-v
シェル入力行を読み取ったときに出力します。スクリプトを実行すると、ファイルを読み取るときにスクリプト全体が印刷されます。シェルをインタラクティブに使用する場合、Enterキーを押すと各コマンドが表示されます。
上記の引用は、のset
組み込みコマンドの説明からのものですman bash
。これは、オプションset
も引数として(シェバン行で)渡すこともできることを説明しています。
特に指定がない限り、オプションはデフォルトでオフになっています。これらのオプションを使用せ
+
ずに使用すると、-
これらのオプションがオフになります。 オプションは、シェルの呼び出しに対する引数として指定することもできます。 現在のオプションのセットはにあります$-
。無効なオプションが検出されない限り、戻りステータスは常にtrueです。
/-x
数回するとそこに到達しますman
(実際にはless
)。最後の検索を/
+上向き矢印で繰り返すことができますが、現在の検索を画面から外すには、ページを下に移動する必要があります(/
前方検索、?
後方検索)。
n
前方検索とN
後方検索を使用することで、次のヒットをより少なく検索するのが簡単になります。
test -x
、条件式(第三のヒット)の下ではありませんset -x
。-x
中には、man bash
より具体的に得ることができますので、かなり悪いケースである:あなたが使用している場合は/^\s+-x\b
、(=ライン+空白+の開始-x
あなたが5本の安打で右のいずれかを取得+ワード境界)...それは4でしたが、実際のためだろうx
試合X
...これは私が尋ねることを意味してきた質問に私を導きます。とにかく、ほとんどのマニュアルページで、^\s+-x\b
パターンは最初に動作するはずで、スイッチを試します。
bashのマニュアルページには、これらのオプションが実際にさらに下で説明されているというヒントがありますが、見落とされがちです。
したがって、あなたの問題は実際に読むべきです:bashのmanページのOPTIONSセクションは不完全です。答えは、それらを複製するか、OPTIONSセクションの最初のセクションを強調表示することです。
OPTIONS
All of the single-character shell options documented in the descrip‐
tion of the set builtin command can be used as options when the shell
is invoked. [ ... ]
最後に、これは完全なものにする:彼らはすべてのPOSIXシェルのための標準的な選択肢であるとき、スクリプトのコードを示すために読んで(-v
)とするとき、実行を(-x
)。出力はstderrに表示されます。