typeset

, whence

Synopsis

typeset [± HLRZfilrtux [n]] [name [= value]]...

whence [-pv] name...

Description

typeset sets attributes and values for shell variables and functions. When typeset
is invoked inside a function, a new instance of the variables name
is created. The variables value and type are restored when the
function completes. The following list of attributes may be specified:

Left justify and remove leading blanks from value. If n is non-zero it defines the width of the field; otherwise, it is determined by the width of the value of first assignment. When the variable is assigned to, it is filled on the right with blanks or truncated, if necessary, to fit into the field. Leading zeros are removed if the -Z flag is also set. The -R flag is turned off.

-R

Right justify and fill with leading blanks. If n is non-zero it defines the width of the field, otherwise it is determined by the width of the value of first assignment. The field is left filled with blanks or truncated from the end if the variable is reassigned. The -L flag is turned off.

-Z

Right justify and fill with leading zeros if the first non-blank character is a digit and the -L flag has not been set. If n is non-zero it defines the width of the field; otherwise, it is determined by the width of the value of first assignment.

-f

The names refer to function names rather than variable names. No assignments can be made and the only other valid flags are -t, -u and -x. The flag -t turns on execution tracing for this function. The flag -u causes this function to be marked undefined. The FPATH variable will be searched to find the function definition when the function is referenced. The flag -x allows the function definition to remain in effect across shell procedures invoked by name.

-i

Parameter is an integer. This makes arithmetic faster. If n is non-zero it defines the output arithmetic base; otherwise, the first assignment determines the output base.

-l

All upper-case characters are converted to lower-case. The upper-case flag, -u is turned off.

-r

The given names are marked readonly and these names cannot be changed by subsequent assignment.

-t

Tags the variables. Tags are user definable and have no special meaning to the shell.

-u

All lower-case characters are converted to upper-case characters. The lower-case flag, -l is turned off.

-x

The given names are marked for automatic export to the environment of subsequently-executed commands.

The -i attribute can not be specified along with -R, -L, -Z,
or -f.

Using + rather than - causes these flags to be turned off.
If no name arguments are given but flags are specified, a list
of names (and optionally the values) of the variables which have these
flags set is printed. (Using + rather than - keeps the
values from being printed.) If no names and flags are given, the
names and attributes of all variables are printed.

For each name, whence indicates how it would be interpreted if
used as a command name.

The -v flag produces a more verbose report.

The -p flag does a path search for name even if name
is an alias, a function, or a reserved word.

On this man page, ksh(1) commands that are preceded by one or
two * (asterisks) are treated specially in the following ways:

Variable assignment lists preceding the command remain in effect when the command completes.

I/O redirections are processed after variable assignments.

Errors cause a script that contains them to abort.

Words, following a command preceded by ** that are in the format of a variable assignment, are expanded with the same rules as a variable assignment. This means that tilde substitution is performed after the = sign and word splitting and file name generation are not performed.