With the scripts as simple as we have seen so far, there is little that can go wrong or need debugging. As the script grows and decision paths are included with conditional statements, we may need to use some level of debugging to analyze the scripts' progress better.
Bash provides two options for us, -v and -x.
If we want to look at the verbose output from our script and the detailed information about the way the script is evaluated line by line, we can use the -v option. This can be within the shebang, but it is often easier to run the script directly with bash:
$ bash -v $HOME/bin/hello2.sh fred
This is especially useful in this example as we can see how each element of the embedded basename command is processed. ...