Built-in Shell Variables
Built-in variables are automatically set by the shell and are typically used inside shell scripts. Built-in variables can make use of the variable substitution patterns shown previously. Note that the $ is not actually part of the variable name, although the variable is always referenced this way.
Variable | Description |
---|---|
$# | Number of command-line arguments. |
$- | Options currently in effect (arguments supplied on command line or to set). |
$? | Exit value of last executed command. |
$$ | Process number of current process. |
$! | Process number of last background command. |
$0 | First word; that is, command name. This will have the full pathname if it was found via a PATH search. |
$
| Individual arguments on
command line (positional parameters). If
|
$*, $@ | All arguments on command line ($1 $2 ...). |
“$*” | All arguments on command line as one string (“$1 $2 ..."). The values are separated by the first character in the IFS special variable. |
“$@” | All arguments on command line, individually quoted (“$1” “$2” ...). |
$_ | Temporary variable; initialized to pathname of script or program being executed. Later, stores the last argument of previous command. Also stores name of matching MAIL file during mail checks. |
HISTCMD | The history number of the current command. |
LINENO | Current line number within the script or function. |
OLDPWD | Previous working directory (set by cd). |
OPTARG | Name of last option processed by getopts. |
OPTIND | Numerical index of OPTARG. |
PPID | Process number of this ... |
Get Linux in a Nutshell, 6th 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.