fish home | Main documentation page | About fish | External commands | How fish differs from other shells | Builtin commands | License

Builtin commands

. - Evaluate contents of file.

Synopsis

. FILENAME

Description

Evaluates the commands of the specified file in the current shell. This is different from starting a new process to perform the commands (i.e. fish < FILENAME) since the commands will be evaluated by the current shell, which means that changes in environment variables, etc., will remain.

Example

. ~/.fish

causes fish to reread its initialization file.

bg - send to background

Synopsis

bg [PID...]

Description

Sends the specified jobs to the background. A background job is executed simultaneously with fish, and does not have access to the keyboard. If no job is specified, the last job to be used is put in the background. If PID is specified, the jobs with the specified group ids are put in the background.

The PID of the desired process is usually found by using process globbing.

Example

bg %0 will put the job with job id 0 in the background.

break - stop the innermost currently evaluated loop

Synopsis

LOOP_CONSTRUCT; [COMMANDS...] break; [COMMANDS...] end

Description

The break builtin is used to halt a currently running loop, such as a for loop or a while loop. It is usually added inside of a conditional block such as an if statement or a switch statement.

Example

The following code searches all .c files for smurfs, and halts at the first occurance.

for i in *.c;
    if grep smurf $i;
        echo Smurfs are present in $i;
        break;
    end;
end;

builtin - run a builtin command

Synopsis

builtin BUILTINNAME [OPTIONS...]

Description

Prefixing a command with the word 'builtin' forces fish to ignore any aliases with the same name.

Example

builtin jobs

causes fish to execute the jobs builtin, even if a function named jobs exists.

case - conditionally execute a block of commands

Synopsis

switch VALUE; [case [WILDCARD...]; [COMMANDS...];...] end

Description

The switch statement is used to perform one of several blocks of commands depending on whether a specified value equals one of several wildcarded values. The case statement is used together with the switch statement in order to determine which block should be performed.

Example

If the variable $animal contains the name of an animal, the following code would attempt to classify it:

switch $animal
    case cat
        echo evil
    case wolf dog human moose dolphin whale
        echo mammal
    case duck goose albatros
        echo bird
    case shark trout stingray
        echo fish
end

If the above code was run with $animal set to whale, the output would be mammal.

cd - change directory

Synopsis

cd [DIRECTORY]

Description

Changes the current directory. If DIRECTORY is supplied it will become the new directory. If DIRECTORY is a relative path, the CDPATH environment variable will be separated using the : as separator, and the resulting list will be searched for a suitable new current directory. If CDPATH is not set, it is assumed to be '.'. If DIRECTORY is not specified, $HOME will be the new directory.

command - run a program

Synopsis

command COMMANDNAME [OPTIONS...]

Description

prefixing a command with the word 'command' forces fish to ignore any aliases or builtins with the same name.

Example

command ls

causes fish to execute the ls program, even if there exists a 'ls' alias.

complete - edit command specific tab-completions.

Synopsis

complete (-c|--command|-p|--path) COMMAND [(-s|--short-option) SHORT_OPTION] [(-l|--long-option|-o|--old-option) LONG_OPTION [(-a||--arguments) OPTION_ARGUMENTS] [(-d|--description) DESCRIPTION]

Description

Command specific tab-completions in fish are based on the notion of options and arguments. An option is a parameter which begins with a hyphen, such as '-h', '-help' or '--help'. Arguments are parameters that do not begin with a hyphen. Fish recognizes three styles of options, the same styles as the GNU version of the getopt library. These styles are:

complete only allows one of old style long options and GNU style long options to be used on a specific command, but short options can always be specified.

When erasing completions, it is possible to either erase all completions for a specific command by specifying complete -e -c COMMAND, or by specifying a specific completion option to delete by specifying either a long, short or old style option.

Example

The short style option -o for the gcc command requires that a file follows it. This can be done using writing complete -c gcc -s o -r.

The short style option -d for the grep command requires that one of the strings 'read', 'skip' or 'recurse' is used. This can be specified writing complete -c grep -s d -x -a "read skip recurse".

The su command takes any username as an argument. Usernames are given as the first colon-separated field in the file /etc/passwd. This can be specified as: complete -x -c su -d "Username" -a "(cat /etc/passwd|cut -d : -f 1)" .

continue - skip the rest of the current lap of the innermost currently evaluated loop

Synopsis

LOOP_CONSTRUCT; [COMMANDS...] continue; [COMMANDS...] end

Description

The continue builtin is used to skip the current lap of the innermost currently running loop, such as a for loop or a while loop. It is usually added inside of a conditional block such as an if statement or a switch statement.

Example

The following code removes all tmp files without smurfs.

for i in *.tmp;
    if grep smurf $i;
        continue;
    end;
    rm $i;
end;

else - execute command if a condition is not met.

Synopsis

if CONDITION; COMMAND_TRUE [else; COMMAND_FALSE] end;

Description

if will execute the command CONDITION. If the commands exit status is zero, the command COMMAND_TRUE will execute. If it is not zero and COMMAND_FALSE is specified, COMMAND_FALSE will be executed.

Example

The command if test -f foo.txt; echo foo.txt exists; else echo foo.txt does not exist; end will print foo.txt exists if the file foo.txt exists and is a regular file, otherwise it will print foo.txt does not exist.

end - end a block of commands.

Synopsis

for VARNAME in [VALUES...]; COMMANDS; end
if CONDITION; COMMAND_TRUE [else; COMMAND_FALSE] end
while CONDITION; COMMANDS; end
switch VALUE; [case [WILDCARD...]; [COMMANDS...];...] end

Description

end ends a block of commands. For more information, read the documentation for the block constructs, such as if, for and \ while.

eval - eval the specified commands

Synopsis

eval [COMMANDS...]

Description

The eval builtin causes fish to evaluate the specified parameters as a command. If more than one parameter is specified, all parameters will be joined using a space character as a separator.

Example

set cmd ls
eval $cmd

will call the ls command.

exit - exit the shell.

Synopsis

exit [STATUS]

Description

The exit builtin causes fish to exit. If STATUS is supplied, it will be converted to an integer and used as the exit code. Otherwise the exit code will be 0.

If exit is called while sourcing a file (using the . builtin) the rest of the file will be skipped, but the shell will not exit.

fg - send job to foreground

Synopsis

fg [PID]

Description

Sends the specified job to the foreground. While a foreground job is executed, fish is suspended. If no job is specified, the last job to be used is put in the foreground. If PID is specified, the job with the specified group id is put in the foreground.

The PID of the desired process is usually found by using process globbing.

Example

fg %0 will put the job with job id 0 in the foreground.

for - perform a set of commands multiple times.

Synopsis

for VARNAME in [VALUES...]; [COMMANDS...]; end

Description

for is a loop construct. It will perform the commands specified by COMMANDS multiple times. Each time the environment variable specified by VARNAME is assigned a new value from VALUES.

Example

The command

for i in foo bar baz; echo $i; end

would output:

foo
bar
baz

function - create a function

Synopsis

function NAME; BODY; end

Description

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
end

will write hello whenever the user enters hi.

If the user enters any additional arguments after the function, they are inserted into the environment variable array argv.

Example

function ll 
	ls -l $argv

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

function mysearch 
	cat (find . -name $1)|grep -l $2
end
will recursively search the current directory for files with a name matching the first parameter containing the text of the second parameter.

functions - print or erase functions

Synopsis

functions [-e] FUNCTIONS...

Description

This builtin command is used to print or erase functions.

If functions is called with no arguments, the names and definition of all functions are printed, otherwise, the specified function definitions will be printed.

if - Conditionally execute a command

Synopsis

if CONDITION; COMMAND_TRUE [else; COMMAND_FALSE] end;

Description

if will execute the command CONDITION. If the commands exit status is zero, the command COMMAND_TRUE will execute. If it is not zero and COMMAND_FALSE is specified, COMMAND_FALSE will be executed.

Example

The command if test -f foo.txt; echo foo.txt exists; else echo foo.txt does not exist; end will print foo.txt exists if the file foo.txt exists and is a regular file, otherwise it will print foo.txt does not exist.

jobs - print currently running jobs

jobs-synopsis

jobs

Description

The jobs builtin causes fish to print a list of the currently running jobs and their status.

On systems that supports this feature, jobs will also print the CPU usage of each job since the last command was executed. The CPU usage is expressed as a percentage of full CPU activity. Note that on multiprocessor systems, the total activity may be more than 100%.

read - read line of input into variables

Synopsis

read [OPTIONS] [VARIABLES...]

Description

The read builtin causes fish to read one line from standard input and store the result in one or more environment variables.

Read starts by reading a single line of input from stdin, the line is then tokenized using the IFS environment variable. Each variable specified in VARIABLES is then assigned one tokenized string element. If there are more tokens than variables, the complete remainder is assigned to the last variable.

Example

echo hello|read foo

Will cause the variable $foo to be assigned the value hello.

set - Handle environment variables.

Synopsis

set [OPTIONS] VARIABLE_NAME [VALUES...]

The set builtin causes fish to assign the variable VARIABLE_NAME the values VALUES....

Description

If set is called with no arguments, the names and values of all environment variables are printed.

If set is called with only one argument, the scope of the variable with the given name will be changed as specified, but it's value will remain the same. If the variable did not previously exist, it's value will be an empty string.

If the -e or --erase option is specified, all the variables specified by the following arguments will be erased

If set is called with more than one value, the variable will be an array.

If the variable name is an array element, such as PATH[3], only that array element will be changed.

Example

set foo hi sets the value of the variable foo to be hi.

set -e smurf removes the variable smurf.

set PATH[4] ~/bin changes the fourth element of the PATH array to ~/bin

switch - conditionally execute a block of commands

Synopsis

switch VALUE; [case [WILDCARD...]; [COMMANDS...];...] end

Description

The switch statement is used to perform one of several blocks of commands depending on whether a specified value equals one of several wildcarded values.

Example

If the variable $animal contins the name of an animal, the following code would attempt to classify it:

switch $animal
    case cat
        echo evil
    case wolf dog human moose dolphin whale
        echo mammal
    case duck goose albatros
        echo bird
    case shark trout stingray
        echo fish
end

If the above code was run with $animal set to whale, the output would be mammal.

while - perform a command multiple times

Synopsis

while CONDITION; COMMANDS; end

Synopsis

The while builtin causes fish to continually execute the command COMMANDS while the command CONDITION returns with status 0.

Example

while test -f foo.txt; echo file exists; sleep 10; end

causes fish to print the line 'file exists' at 10 second intervals as long as the file foo.txt exists.

return - Stop the innermost currently evaluated function

Synopsis

function NAME; [COMMANDS...] break [STATUS]; [COMMANDS...] end

Description

The return builtin is used to halt a currently running function. It is usually added inside of a conditional block such as an if statement or a switch statement.

Example

The following code is an implementation of the false program as a fish builtin

function false
	return 1
end

- Set the commandline

Synopsis

commandline [[-a|--append]CMD]

Description

The commandline builtin prints or sets the current commandline

Example

commandline $history[3]

sets the current commandline to the third item from ther commandline history.


Generated on Wed Jun 22 09:51:29 2005 for fish by  doxygen 1.4.3-20050530