\section function function - create a function \subsection function-synopsis Synopsis function [OPTIONS] NAME; BODY; end \subsection function-description Description - \c -b or \c --key-binding specifies that the function is a key biding. Key binding functions work exactly like regular functions except that they can not be tab-completed, and may contain the '-' character. - -d DESCRIPTION or \c --description=DESCRIPTION is a description of what the function does, suitable as a completion description - -j PID or --on-job-exit PID tells fish to run this function when the job with group id PID exits - -p PID or --on-process-exit PID tells fish to run this function when the fish child process with process id PID exits - -s or --on-signal SIGSPEC tells fish to run this function when the signal SIGSPEC is delivered. SIGSPEC can be a signal number, or the signal name, such as SIGHUP (or just HUP) - -v or --on-variable VARIABLE_NAME tells fish to run this function when the variable VARIABLE_NAME changes value This builtin command is used to create a new function. A Function is a list of commands that will be executed when the name of the function is entered. The function
function hi echo hello endwill write hello whenever the user enters \c hi. If the user enters any additional arguments after the function, they are inserted into the environment variable array argv. \subsection function-example Example
function ll ls -l $argv endwill run the \c ls command, using the \c -l option, while passing on any additional files and switches to \c ls.
function mkdir -d "Create a directory and set CWD" mkdir $argv if test $status = 0 switch $argv[(count $argv)] case '-*' case '*' cd $argv[(count $argv)] return end end endwill run the mkdir command, and if it is successful, change the current working directory to the one just created.