手册页部分 1: 用户命令

退出打印视图

更新时间: 2014 年 7 月
 
 

builtin(1)

名称

builtin - 用于添加、删除或显示 shell 内置命令的 ksh 内置函数

用法概要

builtin [-ds] [-f lib] [pathname ...]

描述

kshbuiltin 命令可在当前 shell 环境中添加、删除或显示内置命令。内置命令在当前 shell 进程中执行,可能会在当前 shell 中产生负面影响。在大多数系统上,内置命令的调用时间比创建单独进程的命令低一或两个数量级。

对于指定的每个 pathname,由路径名的基名确定内置命令的名称。对于每个基名,该 shell 会在当前 shell 中查找 C 级函数(通过内置名称前置 b_ 来确定其名称)。如果 pathname 包含正斜杠 (/),内置命令会绑定到 pathname。仅当 pathname 是在路径搜索期间找到的第一个可执行对象时,才会执行绑定到该路径名的内置命令。否则,将在执行路径搜索之前查找内置命令。

如果未指定 pathnamebuiltin 会在标准输出上显示当前内置命令列表,或者在指定了 –s 选项的情况下仅显示特殊内置命令。将显示已绑定到路径名的内置命令的全路径名。

可使用 –f 选项指定包含内置命令的库。如果库中包含名为 lib_init() 的函数,则会在装入该库时调用此函数(带有参数 0)。lib_init() 函数可以通过调用相应的 C 级函数装入内置命令。在这种情况下,对 C 级函数名称没有限制。

调用 C 级函数时带有三个参数。前两个参数与 main() 相同,第三个是一个指针。

无法从限定的 shell 调用 kshbuiltin 命令。

选项

支持以下选项:

–d

删除每个指定内置命令。无法删除特殊内置命令。

–f lib

在具有动态链接的系统上,在共享库 lib 中装入和搜索内置命令。

搜索 $PATH 和系统相关库目录中的库。可省略系统相关共享库的前缀或后缀。装入某库后,其符号即可用于 builtin 的当前和后续调用。在单个 builtin 调用中可以指定多个库。按指定库时的反向顺序搜索库。

–s

仅显示特殊内置命令。

操作数

支持下列操作数:

pathname

指定 pathname。由路径名的基名确定内置命令的名称。

退出状态

将返回以下退出值:

0

成功完成。

>0

出现错误。

示例

示例 1 装入 builtin 命令

以下示例从库 libfoo.so 装入 builtin 命令 mycmd


example% builtin -f foo mycmd

作者

作者

David Korn,dgk@research.att.com

属性

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

属性类型
属性值
可用性
system/core-os
接口稳定性
Uncommitted(未确定)

另请参见

ksh(1)whence(1)attributes(5)