bash script debug output + and ++ Code Answer

Hello Developer, Hope you guys are doing great. Today at Tutorial Guruji Official website, we are sharing the answer of bash script debug output + and ++ without wasting too much if your time.

The question is published on by Tutorial Guruji team.

What are / is the significance of + and ++ at the beginning of bash debug (set -x) output?

The original text looks like this

++ delete 
+ exitstatus=0
+ '[' 0 = 0 ']'
++ delete
+ whiptail --title 'Command output 1311' --separate-output --scrolltext --msgbox '/usr/bin/raspi-config-DEBUG.sh: line 1311: delete: command not found' 17 80 10
+ echo '1317  done printing choice to stdout'

Answer

The + is the PS4 prompt (just like PS1 usually holds $ or some variation thereof, which is the default interactive prompt). It is outputted before each command executed when tracing is enabled with set -x.

The bash manual says this:

PS4

The value of this parameter is expanded as with PS1 and the value is printed before each command bash displays during an execution trace. The first character of PS4 is replicated multiple times, as necessary, to indicate multiple levels of indirection. The default is +.

The multiple + that you may see are due to commands being executed in subshells.

Example showing three levels of subshells:

$ cat script.sh
#!/bin/bash

echo "$( echo "$( echo hi )" )"
$ bash -x script.sh
+++ echo hi
++ echo hi
+ echo hi
hi
We are here to answer your question about bash script debug output + and ++ - If you find the proper solution, please don't forgot to share this with your team members.

Related Posts

Tutorial Guruji