aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc_src/function.txt
blob: 4eb555c92f909d10374788a67382ee537645dfd8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
\section function function - create a function

\subsection function-synopsis Synopsis
 <tt>function [OPTIONS] NAME; BODY; end </tt>

\subsection function-description Description

- <tt>-d DESCRIPTION</tt> or \c --description=DESCRIPTION is a description of what the function does, suitable as a completion 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. 

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 

<pre>
function hi
	echo hello
end
</pre> 

will write <tt>hello</tt> whenever the user enters \c hi.

If the user enters any additional arguments after the function, they
are inserted into the environment variable <a href="index.html#variables-arrays">array</a> argv.

\subsection function-example Example

<pre>function ll 
	ls -l $argv
</pre>

will run the \c ls command, using the \c -l option, while passing on any additional files and switches to \c ls.

<pre>
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
end
</pre> 

will run the mkdir command, and if it is succesfull, change the
current working directory to the one just created.