GNU Info

Info Node: (bashref.info)Special Parameters

(bashref.info)Special Parameters


Prev: Positional Parameters Up: Shell Parameters
Enter node , (file) or (file)node

Special Parameters
------------------

   The shell treats several parameters specially.  These parameters may
only be referenced; assignment to them is not allowed.

`*'
     Expands to the positional parameters, starting from one.  When the
     expansion occurs within double quotes, it expands to a single word
     with the value of each parameter separated by the first character
     of the `IFS' special variable.  That is, `"$*"' is equivalent to
     `"$1C$2C..."', where C is the first character of the value of the
     `IFS' variable.  If `IFS' is unset, the parameters are separated
     by spaces.  If `IFS' is null, the parameters are joined without
     intervening separators.

`@'
     Expands to the positional parameters, starting from one.  When the
     expansion occurs within double quotes, each parameter expands to a
     separate word.  That is, `"$@"' is equivalent to `"$1" "$2" ...'.
     When there are no positional parameters, `"$@"' and `$@' expand to
     nothing (i.e., they are removed).

`#'
     Expands to the number of positional parameters in decimal.

`?'
     Expands to the exit status of the most recently executed foreground
     pipeline.

`-'
     (A hyphen.)  Expands to the current option flags as specified upon
     invocation, by the `set' builtin command, or those set by the
     shell itself (such as the `-i' option).

`$'
     Expands to the process ID of the shell.  In a `()' subshell, it
     expands to the process ID of the invoking shell, not the subshell.

`!'
     Expands to the process ID of the most recently executed background
     (asynchronous) command.

`0'
     Expands to the name of the shell or shell script.  This is set at
     shell initialization.  If Bash is invoked with a file of commands
     (Note: Shell Scripts), `$0' is set to the name of that file.  If
     Bash is started with the `-c' option (Note: Invoking Bash), then
     `$0' is set to the first argument after the string to be executed,
     if one is present.  Otherwise, it is set to the filename used to
     invoke Bash, as given by argument zero.

`_'
     (An underscore.)  At shell startup, set to the absolute filename
     of the shell or shell script being executed as passed in the
     argument list.  Subsequently, expands to the last argument to the
     previous command, after expansion.  Also set to the full pathname
     of each command executed and placed in the environment exported to
     that command.  When checking mail, this parameter holds the name
     of the mail file.


automatically generated by info2www version 1.2.2.9