yeah, assigment in the shell doesn't use the $ on the variable name, i.e.
Code:
myvar=1 # like this
$myvar=1 # not like this
In the shell you only use the $ to say "give me the value which is currently assigned to this variable", e.g.
Code:
echo "the value is $myvar" # like this
echo "the value is myvar" # not like this
Perl always uses the $, C and C++ don't use a $ at all, neither do awk or python. TCL does use $, but like the shell - only to take the value. Assembler doesn't know what a variable is (although there are pre-processors which pretend to).
I think language designers have the idea that confusion is an important part of writing a new language. Don't get me started on "else if" variants. Egad!