Q:

Unix/Linux shell variable issue

in Terminal, I enter the following code:
~$ a=1
~$ ${a}

it shows: 1: command not found
but when I echo the variable, it correctly shows 1.

A:

Telling the shell:
a=1
$a

Makes the shell look for the program with the name 1 in its path.
Telling it
a=1
echo $a

Tells the shell to look for the program echo which then takes your first argument (1) and print it to stdout.

