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 is
       every   name   (even those that already exist), and
       when the function completes.  See  `Local   Parame-
       param(1).    The   same   rules   apply  to special
       which retain their special attributes when made lo-

       For each name=value assignment, the parameter  name
       value.  Note that arrays currently  cannot  be  as-
       expressions, only  scalars  and  integers.   Unless
       KSH TYPESET  is  set, normal expansion rules  apply
       arguments,  so  value  may  be split into  separate
       option  is  set, assignments which  can  be  recog-
       sion is performed are treated as single words.  For
       command  typeset  vbl=$(echo  one  two) is  treated
       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  parameters,
       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  the
-h  flag  on

       parameters is respected; no value will be shown for
       eters.

       If  the -T option is  given,  two  or  three  argu-
       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 order)

       that will be tied together in the manner  of  $PATH
       The  optional  third  argument  is  a  single-char-
       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
       of  them  with another typeset command; +T does not
       ing  an  array  to SCALAR is an error, and  assign-
       array  sets  it  to  be  a   single-element  array.
       `typeset  -xT ...' and `export -T  ...'  work,  but
       will be marked for export.  Setting the value using
       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 pa-
       global, as the flag will apply to any existing  pa-
       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
       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 in-
       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
       ters (or functions with the -f flag)  with   match-
       printed  (the  shell  option  TYPESET SILENT is not
       case).  Note that -m is ignored if no patterns  are
       the   +g  flag is combined with -m, a new local pa-
       ated for every matching  parameter  that   is   not
       Otherwise   -m   applies  all  other  flags  or as-
       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  (ar-
       tion,    exported,   integer,   readonly).   If  +m
       attribute flags, and all those flags are introduced
       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  the
       parameter  expansion expression  using  `$'.   They
       when  a  parameter  is  retrieved internally by the
       purpose.

       The following attribute flags may be specified:

       -A     The  names  refer   to   associative   array
              `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
              ters,  the length of the complete value  as-
              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
              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 fit
              Note  truncation  can  lead  to   unexpected
              numeric  parameters.   Leading zeros are re-
              flag is also set.

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

       -U      For  arrays  (but  not for associative  ar-
              the  first  occurrence  of  each  duplicated
              also be set for colon-separated special  pa-
              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
              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
              place in the output.

       -a     The names refer to array parameters.  An ar-
              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
              assignments  can be made, and the only other
              are -t, -T, -k, -u, -U and -z.  The flag  -t
              cution  tracing  for this function; the flag
-T  does  the

              same,  but  turns off tracing on  any  func-
              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 load-
              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
              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
              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  the
-m  option.

              This   is  on  by  default  for  the  param-
              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,
              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,  unless
+g  is  also

              explicitly  given;  in  other  words the pa-
              made  local to the enclosing function.  This
              patibility with previous versions of zsh.

declare
       Same as typeset.

readonly
       Same as typeset -r.
