Variables
Preface a variable by a dollar sign ($) to reference its value. You can also optionally enclose it in braces ({ }). You can assign a value to a variable through an equals sign (=) with no whitespace on either side of it:
$ TMP=temp.fileBy default, variables are seen only within the shell itself; to pass variables to other programs invoked within the shell, see the export built-in command.
If enclosed by brackets ([ ]), the variable is considered an array variable. For instance:
$DIR_LIST[0]=src$DIR_LIST[1]=headers$ls ${DIR_LIST[1]}
The contents of headers are listed. Many substitutions and commands in this chapter handle arrays by operating on each element separately.
Variable Substitution
In the following substitutions, braces ({ }) are optional, except when needed to separate a variable name from following characters that would otherwise be considered part of the name.
|
Variable |
Meaning |
|---|---|
|
|
Value of variable var. |
|
|
Name of the program. |
|
|
Individual arguments on command line (positional parameters); 1 ≤ n ≤ 9. |
|
|
Number of arguments on command line. |
|
|
All arguments on command line. |
|
|
Same as $*, but contents are split into words when the variable is enclosed in double quotes. |
|
|
Process number of current shell; useful as part of a filename for creating temporary files with unique names. |
|
|
Exit status of last command (normally 0 for success). |
|
|
Process number of most recently issued background command. |
|
|
Current ... |