The function
reserved word is used to define shell functions.
Shell functions are read in and stored internally.
Alias names are resolved when the function is read.
Functions are executed like commands with the arguments
passed as positional parameters.
(See section Command Execution.)
Functions execute in the same process as the caller and
share all files
and present working directory with the
caller. A trap on EXIT
set inside a function
is executed after the function completes in the environment
of the caller.
The return
builtin is used to return from function calls.
Function identifiers can be listed with the functions
builtin.
Functions can be undefined with the unfunction
builtin.
A function can be marked as undefined using the autoload
builtin
(or `functions -u
' or `typeset -fu
'). Such a function has no
body. When the function is first executed, the fpath
variable will be searched for a file with the same name as the
function.
If the KSH_AUTOLOAD
option is set, or the file contains only a simple
definition of the function, the file's contents will be
executed. It would normally define the function in question, but may
also perform initialisation.
It is executed in the context of the function
execution, and may therefore define local parameters.
Otherwise, the function is defined such that its body is the complete contents of the file. This form allows the file to be used directly as an executable shell script. Initialisation code can be executed, but only as part of the first function execution, so the function would have to redefine itself to avoid reinitialising on the next execution.
If this processing of the file results in the function being fully defined, the function itself is then executed.
The following functions, if defined, have special meaning to the shell:
chpwd
periodic
PERIOD
is set, this function is executed every $PERIOD
seconds, just before a prompt.
precmd
preexec
TRAP
NAL
SIG
NAL, where NAL is a signal
name as specified for the kill
builtin.
The signal number will be passed as the first parameter to the function.
If a function of this form is defined and null,
the shell and processes spawned by it will ignore SIG
NAL.
TRAPDEBUG
TRAPEXIT
TRAPZERR
Go to the first, previous, next, last section, table of contents.