Hack 32. PS4 - Used by “set -x” to prefix tracing output
The PS4 shell variable defines the prompt that gets displayed, when you execute a shell script in debug mode as shown below.
Shell script and output WITHOUT 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: This displays the default "++" while tracing the output using set -x]
Shell script and output WITH PS4:
The PS4 defined below in the ps4.sh has the following two codes: o $0 - indicates the name of script
o $LINENO - displays the current line number within the script
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: This displays the modified "{script-name}.{line-number}+" while tracing the output using set -x]
0 comments:
Post a Comment