When trying to debug your own scripts it can be difficult to see exactly what you want. Pages of white text scrolling across the screen. Here is a quick flexible function that can make life a whole lot easier by setting different debug values and instead of using echo, use the function name.
#################################################
# Variable Declarations
#
#What output to show on screen
#debug levels:
# 0 is no debug or logging.
# 1 is basic output only (gree text)
# 2 is basic output plus basic debug (adds yellow text)
# 3 is show everything (adds red text)
debuglevel=2
#log to file
log=0
#where the logfile is located
logfile="/dev/null"
#################################################
# functions
output(){
if [ $debuglevel -gt "0" ] && [ $1 = "1" ];
then
/bin/echo -e "`/bin/date +"%m-%d-%Y %r"`:\e[00;32m $2\e[00m"
fi
if [ $debuglevel -gt "1" ] && [ $1 = "2" ];
then
/bin/echo -e "`/bin/date +"%m-%d-%Y %r"`:\e[01;33m $2\e[00m"
fi
if [ $debuglevel -gt "2" ] && [ $1 = "3" ];
then
/bin/echo -e "`/bin/date +"%m-%d-%Y %r"`:\e[00;31m $2\e[00m"
fi
if [ $log -eq "1" ];
then
/bin/echo `/bin/date +"%m-%d-%Y %r"` : $@ >> $logfile
fi
}
#################################################
# Code
#
output "1" "this is normal output"
output "2" "this is basic debug output"
output "3" "this is everything output"
Copy this into a basic script and run it, adjust the debuglevel variable at the top to see different output. I know this will help me in the future and hope it will help others as well.

Recent Comments