The positional parameters provide access to the command-line arguments
of a shell function, shell script, or the shell itself; see
Invocation, and also Functions.
The parameter n, where n is a number,
is the nth positional parameter.
The parameter ‘$0
’ is a special case, see
Parameters Set By The Shell.
The parameters *
, @
and argv
are
arrays containing all the positional parameters;
thus ‘$argv[
n]
’, etc., is equivalent to simply ‘$
n’.
Note that the options KSH_ARRAYS
or KSH_ZERO_SUBSCRIPT
apply
to these arrays as well, so with either of those options set,
‘${argv[0]}
’ is equivalent to ‘$1
’ and so on.
Positional parameters may be changed after the shell or function starts by
using the set
builtin, by assigning to the argv
array, or by direct
assignment of the form ‘n=
value’ where n is the number of
the positional parameter to be changed. This also creates (with empty
values) any of the positions from 1 to n that do not already have
values. Note that, because the positional parameters form an array, an
array assignment of the form ‘n=(
value ...)
’ is
allowed, and has the effect of shifting all the values at positions greater
than n by as many positions as necessary to accommodate the new values.