回答:
を使用しbash -v
ます。
これはスクリプトです:
#!/bin/bash -v
echo "Hello, World" | sed 's|Hello|Goodbye|'
echo "Done."
これは出力です:
#!/bin/bash -v
echo "Hello, World" | sed 's|Hello|Goodbye|'
Goodbye, World
echo "Done."
Done.
残念ながら、PS4
拡張コマンドを印刷するためのような特別なマーカーはありません。ただし、両方を組み合わせてコマンドをすばやく識別できます。
#!/bin/bash -vx
echo "Hello, World" | sed 's|Hello|Goodbye|'
+ echo 'Hello, World'
+ sed 's|Hello|Goodbye|'
Goodbye, World
echo "Done."
+ echo Done.
Done.
set -xは別の方法です。
$ cat a.sh
#!/bin/bash
set -x
echo "Hello, World" | sed 's|Hello|Goodbye|'
echo "Done."
出力は次のようになります。
sh a.sh
+ echo 'Hello, World'
+ sed 's|Hello|Goodbye|'
Goodbye, World
+ echo Done.
Done.
set -x
、スクリプト内のどこにいても、また非アクティブ化することもできます。そのため、echo "Done"
ライン上でのみ必要な場合は、set -x
その直前に配置します。