Previous: Positional Parameters, Up: Shell Parameters
The shell treats several parameters specially. These parameters may only be referenced; assignment to them is not allowed.
*"$*" 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.
@"$@" is equivalent to
"$1" "$2" ....
If the double-quoted expansion occurs within a word, the expansion of
the first parameter is joined with the beginning part of the original
word, and the expansion of the last parameter is joined with the last
part of the original word.
When there are no positional parameters, "$@" and
$@
expand to nothing (i.e., they are removed).
#?-set
builtin command, or those set by the shell itself
(such as the -i option).
$() subshell, it
expands to the process id of the invoking shell, not the subshell.
!0$0 is set to the name of that file.
If Bash is started with the -c option (see 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.
_