I'm having some problems with some scripts in bash about errors and unexpected behavior I'd like to look for the causes of the problems so i can apply solutions Is there any way to turn a debug mode for bash to get more information?

Best Answer

Start your bash script with bash -x ./script.sh or add in your script set -x to see debug output.

Additional with bash 4.1 or later.

If you want to write the output of debug in a separate file add this into your script

exec 5> debug_output.txt

See: https://stackoverflow.com/a/25593226/3776858

Add this if you want to see line numbers


If you have access to logger command then you can use this to write debug output via your syslog with timestamp, script name and line number:


exec 5> >(logger -t $0)
set -x

# Place your code here

You can use option -p of logger command to set an individual facility and level to write output via local syslog to its own logfile.