手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

typeset(1)

名称

typeset , whence - 用于设置/获取 shell 变量和函数的属性和值的 shell 内置函数

用法概要

typeset [ -CDHLRZfilrtux [n]] [name[=value]]...
whence [-pv] name...

描述

typeset 可设置 shell 变量和函数的属性和值。在函数内部调用 typeset 时,会创建变量 name 的新实例。当函数完成时,将恢复变量和类型。支持以下一系列属性:

–C

复合变量。每个名称是一个复合变量。如果 value 指定了一个复合变量,则会将其复制到 name。否则,如果该变量已经存在,首先为其取消设置。

–D

保留以供将来使用。

–H

提供 UNIX 到非 UNIX 计算机上主机名文件的映射。

–L

向左对齐,删除值的前导空格。如果 n非零,则定义字段宽度。否则根据第一个赋值的值的宽度确定字段宽度。如果为此变量赋值,则会根据需要使用空格填充此值的右侧或者截断此值,使其适合此字段。如果同时设置了 –Z 标志,则删除前导零。禁用 –R 标志。

–R

向右调整,并使用前导空格填充。如果 n非零,则定义字段宽度。否则,字段宽度由第一个赋值的值的宽度决定。如果重新为此变量赋值,则会使用空格填充此字段的左侧,或者截断此字段的末尾。禁用 –L 标志。

–Z

如果第一个非空字符为数字,并且未设置 –L 标志,则向右对齐,并以前导零填充。如果 n非零,则定义字段宽度。否则根据第一个赋值的值的宽度确定字段宽度。

–f

所有大写字符都将转换为小写字符。禁用大写字母标志 –u

搜索 FPATH 变量,以便在引用函数时查找函数定义。–x 标志允许函数定义在通过名称调用的 shell 过程之间仍然有效。

–i

参数为整数。这将加快算术运算速度。如果 n非零,则定义输出算术基数。否则,第一个赋值将决定输出基数。

–l

所有大写字符都将转换为小写字符。禁用大写字母标志 –u

–m

移动。属性值是其值移至名称的变量的名称。原始变量未设置。不能与其他任何选项同时使用。

–r

将指定的名称标记为只读,后续赋值无法更改这些名称。

–t

标记变量。用户可以定义标记,对 shell 而言,这些标记没有任何特殊意义。

–u

所有小写字符都将转换为大写字符。禁用小写字母标志 –l

–x

将指定的名称标记为自动导出到后续执行的命令的环境中。

i 属性不能与 –R–L–Z–f 一起指定。

使用 + 而非 - 将导致禁用这些标志。如果未指定名称参数但是指定了标志,将输出设置了这些标志的变量的名称和值(后者可选)的列表。使用 + 而非 - 将阻止输出值。如果未指定名称和标志,将输出所有变量的名称和属性。

对于每个名称,whence 表示将其用作命令名称时如何对其进行解释。

–v 标志会生成更详细的报告。

即使 name 为别名、函数或保留字,–p 标志也会针对 name 进行路径搜索。

在本手册页中,前面有一个或两个 *(星号)的 ksh(1) 命令按以下方式特殊处理:

  1. 命令完成时,该命令前面的变量赋值列表仍然有效。

  2. 在变量赋值之后处理 I/O 重定向。

  3. 脚本中包含的错误会导致其中止。

  4. 如果字的后面是前面加有 ** 的命令且字为变量赋值的格式,则使用与变量赋值相同的规则扩展这些字。这表示在 = 符号之后执行波浪号替换,并且不执行字拆分和文件名生成。

属性

有关下列属性的说明,请参见 attributes(5)

属性类型
属性值
可用性
system/core-os

另请参见

ksh(1)ksh88(1)set(1)sh(1)attributes(5)