functions - print or erase functions¶
functions [ -a | --all ] [ -n | --names ] functions [ -D | --details ] [ -v ] FUNCTION functions -c OLDNAME NEWNAME functions -d DESCRIPTION FUNCTION functions [ -e | -q ] FUNCTIONS...
functions prints or erases functions.
The following options are available:
--alllists all functions, even those whose name starts with an underscore.
-c OLDNAME NEWNAMEor
--copy OLDNAME NEWNAMEcreates a new function named NEWNAME, using the definition of the OLDNAME function.
--description=DESCRIPTIONchanges the description of this function.
--erasecauses the specified functions to be erased. This also means that it is prevented from autoloading.
--detailsreports the path name where the specified function is defined or could be autoloaded,
stdinif the function was defined interactively or on the command line or by reading stdin,
-if the function was created via source, and
n/aif the function isn't available. (Functions created via alias will return
sourceinternally.) If the
--verboseoption is also specified then five lines are written:
the pathname as already described,
the line number within the file or zero if not applicable,
scope-shadowingif the function shadows the vars in the calling function (the normal case if it wasn't defined with
n/aif the function isn't defined,
the function description minimally escaped so it is a single line or
n/aif the function isn't defined.
You should not assume that only five lines will be written since we may add additional information to the output in the future.
--nameslists the names of all defined functions.
--querytests if the specified functions exist.
--verbosewill make some output more verbose.
--handlerswill show all event handlers.
--handlers-type TYPEwill show all event handlers matching the given type
The default behavior of
functions, when called with no arguments, is to print the names of all defined functions. Unless the
-a option is given, no functions starting with underscores are included in the output.
If any non-option parameters are given, the definition of the specified functions are printed.
Automatically loaded functions cannot be removed using
functions -e. Either remove the definition file or change the $fish_function_path variable to remove autoloaded functions.
Copying a function using
-c copies only the body of the function, and does not attach any event notifications from the original function.
Only one function's description can be changed in a single invocation of
The exit status of
functions is the number of functions specified in the argument list that do not exist, which can be used in concert with the
functions -n # Displays a list of currently-defined functions functions -c foo bar # Copies the 'foo' function to a new function called 'bar' functions -e bar # Erases the function ``bar``