Shell Variables
For a list of special variables are used internally by the shell, see here.
Declaring
Variables are declared with an equals sign (=).
a=1 b=2 c=3
Note that variables can be set to an empty value, and this is distrinct from not being set.
d=
Usage
Variables are accessed by their name. A dollar sign ($) must be prefixed to the name.
a=foo b=$a # 'foo'
To delimit a variable name from string literals, use braces. For example:
a=foo b=${a}bar # 'foobar'
If a variable's value includes a character that the shell will interpret specially, quote the variable.
a=foo b="$a bar" # 'foo bar'
Special Variables
The following variables are set automatically by bash(1).
Variable |
Value |
$# |
number of arguments |
$@ |
all argument tokens |
$* |
all arguments as a single token |
$? |
the exit code |
$$ |
the PID of the shell |
$! |
the PID of the most recent background job |
Positional Variables
The name of a command is stored in $0.
The first argument to the command is stored in $1. And so on until the 9th argument, $9.
From the tenth argument, while arguments are stored in an indexed variable, they must be accessed differently. $10 is interpretted like ${1}0. To actually access the 10th argument, try ${10}.