Suppose you have saved the following script in a file called do-errors.sh
in Nelle’s north-pacific-gyre/2012-07-03
directory:
# Calculate stats for data files.
for datafile in "$@"
do
echo $datfile
bash goostats.sh $datafile stats-$datafile
done
When you run it:
$ bash do-errors.sh NENE*A.txt NENE*B.txt
the output is blank. To figure out why, re-run the script using the -x
option:
$ bash -x do-errors.sh NENE*A.txt NENE*B.txt
What is the output showing you? Which line is responsible for the error?
-x
option causes bash
to run in debug mode. This prints out each command as it is run, which will help you to locate errors. In this example, we can see that echo
isn’t printing anything. We have made a typo in the loop variable name, and the variable datfile
doesn’t exist, hence returning an empty string.