typeset  [  {+|-}AEFHUafghklprtuxmz  ]  [  -LRZi  [ n ]] [
typeset -T [ {+|-}Urux ] [ -LRZ [ n ]] SCALAR[=value]  ar-
       Set  or display attributes and values for shell pa-

       A parameter is created for each name that does  not
       to   one.   When inside a function, a new parameter
       every name (even those that already exist), and  is
       when  the  function  completes.   See `Local Param-
       param(1).  The same rules apply  to  special  shell
       which retain their special attributes when made lo-

       For  each  name=value  assignment,   the  parameter
       value.   Note  that  arrays currently cannot be as-
       expressions,  only  scalars  and   integers.    Un-
       KSH  TYPESET  is  set, normal expansion rules apply
       arguments,  so  value  may  be split into  separate
       option  is set, assignments which can be recognised
       sion  is performed are  treated  as  single  words.
       command typeset vbl=$(echo one two) is  treated  as
       argument if KSH TYPESET is set,  but  otherwise  is
       ing the two arguments vbl=one and two.

       If  the shell option TYPESET SILENT is not set, for
       ing  name  that  refers to a parameter that is set,
       value  of  the parameter are printed in the form of
       Nothing  is  printed   for   newly-created  parame-
       attribute  flags  listed  below  are   given  along
       Using  `+'  instead  of minus to introduce  an  at-
       off.

       If  the  -p  option is given, parameters and values
       the  form  of a typeset command and  an  assignment
(which will be

       printed  separately for arrays and associative  ar-
       less  of  other  flags  and  options.    Note  that
       parameters is respected; no value will be shown for
       eters.

       If  the  -T  option  is  given,  two  or three  ar-
       present  (an  exception  is that zero arguments are
       the  list of parameters created in  this  fashion).
       are the name of a scalar and an array parameter (in
       that  will  be  tied  together  in  the  manner  of
$PATH and $path.

       The optional third  argument  is  a  single-charac-
       which will be used to join the elements of the  ar-
       scalar;  if  absent,  a  colon  is  used,  as  with
$PATH.   Only  the

       first  character  of the separator is  significant;
       characters  are   ignored.   Only  the  scalar  pa-
       assigned  an  initial  value.  Both the scalar  and
       otherwise  be manipulated as normal.  If one is un-
       will automatically be unset too.  There is  no  way
       variables without unsetting them, or converting the
       of  them with another typeset command; +T does  not
       ing  an  array to SCALAR is an error, and assigning
       array  sets  it  to  be   a  single-element  array.
       `typeset -xT ...' and `export -T ...' work, but on-
       will  be  marked for export.  Setting the value us-
       version   causes  a   split   on   all   separators
(which  cannot  be

       quoted).  It is possible to use the same  two  tied
       a  different  separator  character  in  which  case
       remain  joined  as  before  but  the  separator  is
       has  a different meaning when used with -f; see be-

       The -g (global)  flag  is  treated  specially:   it
       resulting parameter will not be restricted to local
       that this does not necessarily mean that the param-
       global,   as   the  flag will apply to any existing
       if unset) from an enclosing  function.   This  flag
       the   parameter after creation, hence it has no ef-
       ing existing parameters, nor does the flag +g  have
       except in combination with -m (see below).

       If   no   name  is present, the names and values of
       are printed.  In this case the attribute flags  re-
       play    to    only    those  parameters  that  have
       attributes, and using `+' rather than `-' to intro-
       suppresses  printing  of  the  values of parameters
       parameter name.  Also, if the last  option  is  the
       names are printed but values are not.

       If the -m flag is given the name arguments are tak-
       (which should be quoted).  With no attribute flags,
       ters   (or   functions   with   the  -f  flag) with
       printed (the shell option TYPESET  SILENT  is   not
       case).    Note   that  -m is ignored if no patterns
       the +g flag is combined with -m, a new local param-
       ated   for   every  matching  parameter that is not
       Otherwise -m applies all  other  flags  or  assign-
       existing   parameters.    Except  when  assignments
       name=value, using  +m  forces  the   matching   pa-
       printed, even inside a function.

       If  no  attribute  flags are given and either no -m
       or the +m form was used, each parameter name print-
       by   a   list  of  the attributes of that parameter
(array, associa-

       tion,  exported,  integer,  readonly).   If  +m  is
       attribute   flags,  and  all those flags are intro-
       matching parameter names are printed but their val-

       Attribute flags that transform the final value (-L,
-R, -Z,  -l,

       u)  are  only  applied  to  the expanded  value  at
       parameter expansion expression using `$'.  They are
       when  a  parameter  is retrieved internally by  the
       purpose.

       The following attribute flags may be specified:

       -A     The names refer  to  associative  array  pa-
              `Array Parameters' in zshparam(1).

       -L     Left  justify and remove leading blanks from
              is  nonzero,  it  defines  the  width of the
              zero,  the  width is determined by the width
              of the first assignment.  In the case of nu-
              ters,  the  length  of  the  complete  value
              parameter  is  used  to determine the width,
              that would be output.

              The width is the count of characters,  which
              byte characters if the MULTIBYTE  option  is
              Note  that the screen width of the character
              into  account;  if  this  is  required,  use
              parameter  expansion  flags ${(ml...)...} as
              `Parameter Expansion Flags' in zshexpn(1).

              When the parameter is expanded, it is filled
              with  blanks  or truncated if  necessary  to
              Note  truncation   can  lead  to  unexpected
              numeric  parameters.  Leading zeros are  re-
              flag is also set.

       -R      Similar to -L, except that right justifica-
              when  the parameter is expanded,  the  field
              with  blanks or truncated from the end.  May
              bined with the -Z flag.

       -U     For  arrays  (but  not for  associative  ar-
              the first occurrence of each duplicated val-
              also  be  set  for  colon-separated  special
              PATH  or FIGNORE, etc.  This flag has a dif-
              when used with -f; see below.

       -Z     Specially  handled if set along with the  -L
              wise, similar to -R, except that leading ze-
              for  padding  instead  of   blanks   if  the
              character  is  a  digit.  Numeric parameters
              handled:  they  are  always   eligible   for
              zeroes, and the zeroes are  inserted  at  an
              place in the output.

       -a     The  names refer to  array  parameters.   An
              may  be  created this way, but it may not be
              the  typeset  statement.   When  displaying,
              associative arrays are shown.

       -f     The names refer to functions rather than pa-
              assignments  can  be made, and the only oth-
              are  -t, -T, -k, -u, -U and -z.  The flag -t
              cution  tracing   for   this  function;  the
              same,  but turns off tracing on any function
              the  present one, unless that function  also
              -T  flag.   The  -u  and  -U flags cause the
              marked for autoloading; -U also causes alias
              be suppressed when the function  is  loaded.
              parameter  will  be  searched  to  find  the
              tion  when the function is first referenced;
              tion  `Functions'.  The -k and -z flags make
              be   loaded  using  ksh-style  or  zsh-style
              respectively.  If  neither  is   given,  the
              KSH  AUTOLOAD   option  determines  how  the
              loaded.

       -h     Hide:  only  useful  for special  parameters
(those marked

              `<S>'  in the table in zshparam(1)), and for
              ters  with  the  same name as a special  pa-
              harmless  for  others.   A  special  parame-
              attribute  will  not  retain its special ef-
              local.   Thus  after  `typeset  -h  PATH', a
              ing  `typeset PATH' will create an  ordinary
              ter  without  the  usual  behaviour of PATH.
              the  local  parameter may  itself  be  given
              hence inside a function  `typeset  -h  PATH'
              ordinary  local  parameter and  the  special
              is  not altered in any way.  It is also pos-
              a  local  parameter using `typeset  +h  spe-
              local  copy  of special will retain its spe-
              regardless  of  having   the  -h  attribute.
              parameters  loaded  from shell modules (cur-
              zsh/mapfile  and  zsh/parameter)  are  auto-
              the -h attribute to avoid name clashes.

       -H      Hide value: specifies that typeset will not
              value  of the parameter when listing parame-
              play for such parameters is always as if the
`+' flag had

              been  given.   Use  of the parameter  is  in
              normal, and the option does not apply if the
              specified  by  name,  or  by   pattern  with
              This  is  on  by  default  for  the  parame-
              zsh/parameter   and   zsh/mapfile   modules.
              that  unlike the -h flag this is also useful
              cial parameters.

       -i     Use  an internal integer representation.  If
              it defines the output arithmetic base,  oth-
              determined  by  the first assignment.  Bases
              inclusive are allowed.

       -E      Use  an  internal double-precision floating
              tation.  On output the variable will be con-
              entific  notation.   If  n is nonzero it de-
              of significant figures to display;  the  de-

       -F      Use  an  internal double-precision floating
              tation.  On output the  variable   will   be
              fixed-point   decimal  notation.   If  n  is
              the number of digits to  display  after  the
              the default is ten.

       -l      Convert  the  result to lower case whenever
              is expanded.  The  value  is  not  converted

       -r      The  given names are marked readonly.  Note
              is  a  special  parameter,  the readonly at-
              turned on, but cannot then be turned off.

       -t      Tags  the  named  parameters.  Tags have no
              to  the  shell.   This  flag has a different
              used with -f; see above.

       -u      Convert  the  result to upper case whenever
              is  expanded.   The value is  not  converted
              This  flag has a different meaning when used
              above.

       -x     Mark  for  automatic  export to the environ-
              quently  executed  commands.  If the  option
              is  set,  this  implies  the option -g,  un-
              explicitly  given;  in other words  the  pa-
              made   local   to  the  enclosing  function.
              patibility with previous versions of zsh.

declare
       Same as typeset.

readonly
       Same as typeset -r.
