Quotes and Special Characters

Bash Prompt HOWTO:
Prev | Chapter 3. Bash Programming and Shell Scripts | Next

# 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.

Prev | Home | Next
Variables | Up | Command Substitution