回答:
bash -x script
または
set -x
スクリプトで。
でオプションを再度設定解除できますset +x
。いくつかのコマンドでそれをしたいだけなら、サブシェルを使用できます: `(set -x; command1; command; ...;)
PS4
することにより、のプロンプトを微調整できます-x
。例えば:PS4='Line $LINENO @ $(date +%s.%N): ' bash -x script
(date
ただし、それが遅くなります)
これらも機能します:
set -v
または
#!/bin/bash -v
ただし、-vは各スクリプト行の前にPS4文字列を出力せず、「for」ステートメントのステップを個別にトレースしません。コメントをエコーしますが、-xはエコーしません。
次に、-vを使用した出力の例を示します。
#!/bin/bash -v
# this is a comment
for i in {1..4}
do
echo -n $i
done
1234echo
echo hello
hello
-xを使用した同じスクリプトの結果を次に示します。
+ for i in '{1..4}'
+ echo -n 1
1+ for i in '{1..4}'
+ echo -n 2
2+ for i in '{1..4}'
+ echo -n 3
3+ for i in '{1..4}'
+ echo -n 4
4+ echo
+ echo hello
hello
-vと-xの違いを強調するために「echo -n」を含めたことに注意してください。また、-vは "-o verbose"と同じですが、後者はシバンの一部として機能しないようです。
のように行く
language -x script
言語= python、perl、bash -x =演算子スクリプト=ファイル名
それが役に立てば幸い。
-x
Pythonでエコーを持つには何も持っていない
set
オプションが何であるかを探している人のために、あなたはこのマニュアルページでそれらを見つけることができます。