BUILTIN(1) User Commands BUILTIN(1)


builtin - ksh93 built-in function to add, delete, or display shell built-


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


The ksh93 builtin command adds, deletes, or displays built-in commands in
the current shell environment. A built-in command executes in the current
shell process and can have side effects in the current shell. On most
systems, the invocation time for built-in commands is one or two orders
of magnitude less than commands that create a separate process.

For each pathname specified, the basename of the pathname determines the
name of the built-in. For each basename, the shell looks for a C level
function in the current shell whose name is determined by pre-pending b_
to the built-in name. If pathname contains a forward slash (/), the
built-in is bound to pathname. A built-in bound to a pathname is only
executed if pathname is the first executable found during a path search.
Otherwise, built-ins are found prior to performing the path search.

If pathname is not specified, builtin displays the current list of built-
ins, or just the special built-ins if the -s option is specified, on
standard output. The full pathname for built-ins that are bound to
pathnames are displayed.

Libraries containing built-ins can be specified with the -f option. If
the library contains a function named lib_init(), this function is
invoked with argument 0 when the library is loaded. The lib_init()
function can load built-ins by invoking an appropriate C level function.
In this case there is no restriction on the C level function name.

The C level function is invoked with three arguments. The first two are
the same as main() and the third one is a pointer.

The ksh93 builtin command cannot be invoked from a restricted shell.


The following options are supported:

Delete each of the specified built-ins. Special built-ins
cannot be deleted.

-f lib
On systems with dynamic linking, load and search for built-ins
in the shared library, lib.

Libraries are searched for in $PATH and system dependent
library directories. The system dependent shared library prefix
or suffix can be omitted. Once a library is loaded, its symbols
become available for the current and subsequent invocations of
builtin. Multiple libraries can be specified with separate
invocations of builtin. Libraries are searched in the reverse
order in which they are specified.

Display only the special built-ins.


The following operands are supported:

Specifies the pathname. The basename of the pathname
determines the name of the built-in.


The following exit values are returned:

Successful completion.

An error occurred.


Example 1: Loading a builtin Command

The following example loads a builtin command mycmd from the library

example% builtin -f foo mycmd


David Korn, dgk@research.att.com


See attributes(7) for descriptions of the following attributes:

|Interface Stability | Uncommitted |


ksh93(1), whence(1), attributes(7)

May 1, 2007 BUILTIN(1)