時には追加するのは本当に便利です。
set -x
実行前にすべてのコマンドを表示するには、スクリプトの上部に移動します。
良い出力を持つスクリプトを作成するには、1つの欠点があります。このように、スクリプトにテキスト出力を追加する方法がわかりません。私が使うなら
echo 'some comment'
これにより印刷が倍増します。
+ echo 'some comment'
some comment
試してみると#
全く出ません。
のように印刷されるコメントを追加するにはecho
?を使用するとどうなりますかset -x
?
ベストアンサー1
賢いアプローチは、コメントをno-opコマンドの引数として記述することです。特に役に立つかもしれないものは次のとおりです。:
空のユーティリティ:
set -x
: Some interesting notes on the following are ...
結果:
+ : Some interesting notes on the following are...
コロンコマンドは、何も実行せず、ユーザーが提供するすべての引数を受け入れ、常に成功します。:
トレース出力の開始時に追加情報を取得できますが、これはおそらくユーザーの目的にとって大きな問題ではありません。
これが気に入らない場合、:
より悪い方法は偽のコマンドを使用することです。
set -x
seq 1 1
Some comment &>/dev/null
true
以下を出力します。
+ seq 1 1
1
+ Some comment
+ true
つまり、Some comment
シェルがラインを実行しようとすると、ラインはトレース出力として印刷されますが、結果のエラーメッセージはに送信されます/dev/null
。これはいくつかの明白な理由で迷惑なことですが。エラーset -e
。
どちらの場合も、あなたのコメントは通常の方法でシェルによって解析されるため、特に特殊文字がある場合はそれを引用する必要があり、トレース出力なので引用符が表示されます。