BUILTIN(1) User Commands BUILTIN(1)
NAME
builtin - ksh93 built-in function to add, delete, or display shell
built-ins
SYNOPSIS
builtin [
-ds] [
-f lib] [
pathname ...]
DESCRIPTION
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.
OPTIONS
The following options are supported:
-d 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.
-s Display only the special built-ins.
OPERANDS
The following operands are supported:
pathname Specifies the
pathname. The basename of the pathname
determines the name of the built-in.
EXIT STATUS
The following exit values are returned:
0 Successful completion.
>0 An error occurred.
EXAMPLES
Example 1: Loading a builtin Command
The following example loads a
builtin command
mycmd from the library
libfoo.so:
example% builtin -f foo mycmd
AUTHORS
David Korn,
dgk@research.att.comATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Uncommitted |
+--------------------+-----------------+
SEE ALSO
ksh93(1),
whence(1),
attributes(7) May 1, 2007 BUILTIN(1)