unset [ -fmv ] name ...
       Each  named  parameter  is unset.  Local parameters remain local
       even if unset; they appear unset within scope, but the  previous
       value will still reappear when the scope ends.

       Individual elements of associative array parameters may be unset
       by using subscript syntax on name, which should  be  quoted  (or
       the  entire  command  prefixed  with noglob) to protect the sub-
       script from filename generation.

       If the -m flag is specified the arguments are taken as  patterns
       (should  be  quoted)  and all parameters with matching names are
       unset.  Note that this cannot be used when unsetting associative
       array  elements, as the subscript will be treated as part of the
       pattern.

       The -v flag specifies that name refers to  parameters.  This  is
       the default behaviour.

       unset -f is equivalent to unfunction.
