LDP/LDP/guide/docbook/abs-guide/vartrace.sh

32 lines
853 B
Bash

#!/bin/bash
trap 'echo "VARIABLE-TRACE> \$variable = \"$variable\""' DEBUG
# Echoes the value of $variable after every command.
variable=29; line=$LINENO
echo " Just initialized \$variable to $variable in line number $line."
let "variable *= 3"; line=$LINENO
echo " Just multiplied \$variable by 3 in line number $line."
exit 0
# The "trap 'command1 . . . command2 . . .' DEBUG" construct is
#+ more appropriate in the context of a complex script,
#+ where inserting multiple "echo $variable" statements might be
#+ awkward and time-consuming.
# Thanks, Stephane Chazelas for the pointer.
Output of script:
VARIABLE-TRACE> $variable = ""
VARIABLE-TRACE> $variable = "29"
Just initialized $variable to 29.
VARIABLE-TRACE> $variable = "29"
VARIABLE-TRACE> $variable = "87"
Just multiplied $variable by 3.
VARIABLE-TRACE> $variable = "87"