3.2. Quotes and Special Characters
If you wish to include a special character in a variable, you will have to
quote it differently:
> newvar=$testvar
> echo $newvar
5
> newvar="$testvar"
> echo $newvar
5
> newvar='$testvar'
> echo $newvar
$testvar
> newvar=\$testvar
> echo $newvar
$testvar
> |
The dollar sign isn't the only character that's special to the Bash shell,
but it's a simple example. An interesting step we can take to make use of
assigning a variable name to another variable name is to use
eval to dereference the stored variable name:
> echo $testvar
5
> echo $newvar
$testvar
> eval echo $newvar
5
> |
Normally, the shell does only one round of substitutions on the expression
it is evaluating: if you say echo $newvar the shell
will only go so far as to determine that $newvar is
equal to the text string $testvar, it won't evaluate
what $testvar is equal to. eval
forces that evaluation.