Variables
Variables are prefaced by a dollar sign ($) and optionally enclosed in braces ({}). You can assign a value to a variable through an equals sign (=); no whitespace can appear on either side of the equals sign:
$ 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 subscripted 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.
This subsection describes:
Variable substitution
Built-in shell variables
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 |
---|---|
${
var
}
| The value of variable var . |
$0
| Name of the program. |
${
n
}
|
Individual arguments on command line (positional parameters); 1 ≤ n ≤ 9. |
$#
| Number of arguments on command line. |
$*
| All arguments on command line. |
$@
|
Same as |
$$
|
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 ... |
Get Linux in a Nutshell, Third 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.