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.file
By 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 ... |
Get Linux in a Nutshell, Fourth Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.