IP

LINUX HACK 32

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