Hack 32. PS4 - “set -x”を使用して出力のプリフィックスをトレースする
以下に示すようにデバッグでシェルスクリプトを実行する際に
PS4 シェル変数は出力するプロンプトを定義します。
ramesh@dev-db ~> cat ps4.sh set -x echo "PS4 demo script" ls -l /etc/ | wc -l du -sh ~ ramesh@dev-db ~> ./ps4.sh ++ echo 'PS4 demo script' PS4 demo script ++ ls -l /etc/ ++ wc -l 243 ++ du -sh /home/ramesh 48K /home/ramesh [Note: これは set -x を使用して出力をトレースしている間、デフォルトの "++" を表示します。]
以下の ps4.sh で定義された PS4 は次の2つのコードがあります:
o $0 - スクリプト名を表示する
o $LINENO - スクリプト内の現在の行番号を表示する
ramesh@dev-db ~> cat ps4.sh export PS4='$0.$LINENO+ ' set -x echo "PS4 demo script" ls -l /etc/ | wc -l du -sh ~ ramesh@dev-db ~> ./ps4.sh ../ps4.sh.3+ echo 'PS4 demo script' PS4 demo script ../ps4.sh.4+ ls -l /etc/ ../ps4.sh.4+ wc -l 243 ../ps4.sh.5+ du -sh /home/ramesh 48K /home/ramesh [Note: これは set -x を使用して出力をトレースしている間、変更された "{script-name}.{line-number}+" を表示します。]