シェルスクリプトで実行されているコマンドをエコーアウトすることは可能ですか?
(デバッグモードをオンにするために-Xをシバンに入れずに。これはデバッグプロセスの一部ではありません)
ありがとう
[編集:詳細]
次のようなスクリプトがあるとします。
#! /bin/sh
clear
cd ~/home/
cd
実行される(およびclear
)2つのコマンドをコンソールに出力するにはどうすればよいですか?
私のバージョンの(Debian Almquist Shell、ダッシュ)では、この動作を実現する/bin/sh
以外に方法はありません。-x
エコーコマンドもの唯一の効果な-x
ので、使用しない理由はありません。
echo $0
これにより、コマンドラインの最初の単語がエコーされます。「./bin/test」などの相対パスを指定した場合は、パス全体が表示されるため、次のようにすることができます。
echo $(basename $0)
「./bin/test」ではなく、「test」をエコーします。
プログラムの名前を変更したり、シンボリックリンクから呼び出すことができるため、スクリプトが名前をハードコーディングするのではなく、エラーメッセージで$0を使用することは非常に一般的です。