typeset [ -CDHLRZfilrtux [n]] [name[=value]]...
whence [-pv] name...
typeset 可设置 shell 变量和函数的属性和值。在函数内部调用 typeset 时,会创建变量 name 的新实例。当函数完成时,将恢复变量值和类型。支持以下一系列属性:
复合变量。每个名称是一个复合变量。如果 value 指定了一个复合变量,则会将其复制到 name。否则,如果该变量已经存在,首先为其取消设置。
保留以供将来使用。
提供 UNIX 到非 UNIX 计算机上主机名文件的映射。
向左对齐,删除值的前导空格。如果 n 为非零,则定义字段宽度。否则根据第一个赋值的值的宽度确定字段宽度。如果为此变量赋值,则会根据需要使用空格填充此值的右侧或者截断此值,使其适合此字段。如果同时设置了 –Z 标志,则删除前导零。禁用 –R 标志。
向右调整,并使用前导空格填充。如果 n 为非零,则定义字段宽度。否则,字段宽度由第一个赋值的值的宽度决定。如果重新为此变量赋值,则会使用空格填充此字段的左侧,或者截断此字段的末尾。禁用 –L 标志。
如果第一个非空字符为数字,并且未设置 –L 标志,则向右对齐,并以前导零填充。如果 n 为非零,则定义字段宽度。否则根据第一个赋值的值的宽度确定字段宽度。
所有大写字符都将转换为小写字符。禁用大写字母标志 –u。
搜索 FPATH 变量,以便在引用函数时查找函数定义。–x 标志允许函数定义在通过名称调用的 shell 过程之间仍然有效。
参数为整数。这将加快算术运算速度。如果 n 为非零,则定义输出算术基数。否则,第一个赋值将决定输出基数。
所有大写字符都将转换为小写字符。禁用大写字母标志 –u。
移动。属性值是其值移至名称的变量的名称。原始变量未设置。不能与其他任何选项同时使用。
将指定的名称标记为只读,后续赋值无法更改这些名称。
标记变量。用户可以定义标记,对 shell 而言,这些标记没有任何特殊意义。
所有小写字符都将转换为大写字符。禁用小写字母标志 –l。
将指定的名称标记为自动导出到后续执行的命令的环境中。
i 属性不能与 –R、–L、–Z 或 –f 一起指定。
使用 + 而非 - 将导致禁用这些标志。如果未指定名称参数但是指定了标志,将输出设置了这些标志的变量的名称和值(后者可选)的列表。使用 + 而非 - 将阻止输出值。如果未指定名称和标志,将输出所有变量的名称和属性。
对于每个名称,whence 表示将其用作命令名称时如何对其进行解释。
–v 标志会生成更详细的报告。
即使 name 为别名、函数或保留字,–p 标志也会针对 name 进行路径搜索。
在本手册页中,前面有一个或两个 *(星号)的 ksh(1) 命令按以下方式特殊处理:
命令完成时,该命令前面的变量赋值列表仍然有效。
在变量赋值之后处理 I/O 重定向。
脚本中包含的错误会导致其中止。
如果字的后面是前面加有 ** 的命令且字为变量赋值的格式,则使用与变量赋值相同的规则扩展这些字。这表示在 = 符号之后执行波浪号替换,并且不执行字拆分和文件名生成。
有关下列属性的说明,请参见 attributes(5):
|