跳过导航链接 | |
退出打印视图 | |
手册页第 1 部分:用户命令 Oracle Solaris 11.1 Information Library (简体中文) |
- 用于添加、删除或显示 shell 内置命令的 ksh 内置函数
builtin [-ds] [-f lib] [pathname ...]
kshbuiltin 命令可在当前 shell 环境中添加、删除或显示内置命令。内置命令在当前 shell 进程中执行,可能会在当前 shell 中产生负面影响。在大多数系统上,内置命令的调用时间比创建单独进程的命令低一或两个数量级。
对于指定的每个 pathname,由路径名的基名确定内置命令的名称。对于每个基名,该 shell 会在当前 shell 中查找 C 级函数(通过内置名称前置 b_ 来确定其名称)。如果 pathname 包含正斜杠 (/),内置命令会绑定到 pathname。仅当 pathname 是在路径搜索期间找到的第一个可执行对象时,才会执行绑定到该路径名的内置命令。否则,将在执行路径搜索之前查找内置命令。
如果未指定 pathname,builtin 会在标准输出上显示当前内置命令列表,或者在指定了 -s 选项的情况下仅显示特殊内置命令。将显示已绑定到路径名的内置命令的全路径名。
可使用 -f 选项指定包含内置命令的库。如果库中包含名为 lib_init() 的函数,则会在装入该库时调用此函数(带有参数 0)。lib_init() 函数可以通过调用相应的 C 级函数装入内置命令。在这种情况下,对 C 级函数名称没有限制。
调用 C 级函数时带有三个参数。前两个参数与 main() 相同,第三个是一个指针。
无法从限定的 shell 调用 kshbuiltin 命令。
支持以下选项:
删除每个指定内置命令。无法删除特殊内置命令。
在具有动态链接的系统上,在共享库 lib 中装入和搜索内置命令。
搜索 $PATH 和系统相关库目录中的库。可省略系统相关共享库的前缀或后缀。装入某库后,其符号即可用于 builtin 的当前和后续调用。在单个 builtin 调用中可以指定多个库。按指定库时的反向顺序搜索库。
仅显示特殊内置命令。
支持下列操作数:
指定 pathname。由路径名的基名确定内置命令的名称。
将返回以下退出值:
成功完成。
出现错误。
示例 1 装入 builtin 命令
以下示例从库 libfoo.so 装入 builtin 命令 mycmd:
example% builtin -f foo mycmd
David Korn,dgk@research.att.com
有关下列属性的说明,请参见 attributes(5):
|