Options are primarily referred to by name.
These names are case insensitive and underscores are ignored.
For example, ‘allexport’ is equivalent to ‘A__lleXP_ort’.
The sense of an option name may be inverted by preceding it with
‘no’, so ‘setopt No_Beep’ is equivalent to ‘unsetopt beep’.
This inversion can only be done once, so ‘nonobeep’ is not
a synonym for ‘beep’. Similarly, ‘tify’ is not a synonym for
‘nonotify’ (the inversion of ‘notify’).
Some options also have one or more single letter names.
There are two sets of single letter options: one used by default,
and another used to emulate sh/ksh (used when the
SH_OPTION_LETTERS option is set).
The single letter options can be used on the shell command line,
or with the set, setopt and unsetopt
builtins, as normal Unix options preceded by ‘-’.
The sense of the single letter options may be inverted by using
‘+’ instead of ‘-’.
Some of the single letter option names refer to an option being off,
in which case the inversion of that name refers to the option being on.
For example, ‘+n’ is the short name of ‘exec’, and
‘-n’ is the short name of its inversion, ‘noexec’.
In strings of single letter options supplied to the shell at startup,
trailing whitespace will be ignored; for example the string ‘-f ’
will be treated just as ‘-f’, but the string ‘-f i’ is an error.
This is because many systems which implement the ‘#!’ mechanism for
calling scripts do not strip trailing whitespace.
It is possible for options to be set within a function scope. See the
description of the option LOCAL_OPTIONS below.