Parameters
**********
Description
===========
A parameter has a name, a value, and a number of attributes. A name
may be any sequence of alphanumeric characters and underscores, or the
single characters `*', `@', `#', `?', `-', `$', or `!'. The value may
be a _scalar_ (a string), an integer, an array (indexed numerically),
or an _associative_ array (an unordered set of name-value pairs,
indexed by name). To declare the type of a parameter, or to assign a
scalar or integer value to a parameter, use the typeset builtin.
The value of a scalar or integer parameter may also be assigned by
writing:
NAME=VALUE
If the integer attribute, -i, is set for NAME, the VALUE is subject to
arithmetic evaluation. See Note:Array Parameters for additional
forms of assignment.
To refer to the value of a parameter, write `$NAME' or `${NAME}'. See
Note:Parameter Expansion for complete details.
In the parameter lists that follow, the mark `<S>' indicates that the
parameter is special. Special parameters cannot have their type
changed, and they stay special even if unset. `<Z>' indicates that the
parameter does not exist when the shell initializes in sh or ksh
emulation mode.