Variable substitution happens when a $ prefixed word is found
in a command.  There are three types of variable substitution:
     
$name
          $name(index)
          ${name}
          $name
substitution except it is used to get around the restrictions in the
characters that can form name. 
An example of variable substitution is:
     set a 1
     set b $a
     
which sets the value of variable a to 1, and then sets the value
of variable b to the value of variable a.