IF(1)

NAME
if - conditionally execute a command

SYNOPSIS
if CONDITION; COMMANDS_TRUE ...;
[else if CONDITION2; COMMANDS_TRUE2 ...;]
[else; COMMANDS_FALSE ...;]
end

DESCRIPTION

if will execute the command CONDITION. If the condition's exit status is 0, the commands COMMANDS_TRUE will execute. If the exit status is not 0 and else <> is given, COMMANDS_FALSE will be executed.

You can use and <> or or <> in the condition. See the second example below.

The exit status of the last foreground command to exit can always be accessed using the $status <#variables-status> variable.

The -h or --help option displays help about using this command.

EXAMPLE

The following code will print foo.txt exists if the file foo.txt exists and is a regular file, otherwise it will print bar.txt exists if the file bar.txt exists and is a regular file, otherwise it will print foo.txt and bar.txt do not exist.

    if test -f foo.txt
        echo foo.txt exists
    else if test -f bar.txt
        echo bar.txt exists
    else
        echo foo.txt and bar.txt do not exist
    end

The following code will print "foo.txt exists and is readable" if foo.txt is a regular file and readable

    if test -f foo.txt
       and test -r foo.txt
       echo "foo.txt exists and is readable"
    end

SEE ALSO

if is only as useful as the command used as the condition.

Fish ships a few:

•   test - perform tests on files and text <> can compare numbers, strings and check paths

•   string - manipulate strings <> can perform string operations including wildcard and regular expression matches

•   path - manipulate and check paths <> can check paths for permissions, existence or type

•   contains - test if a word is present in a list <> can check if an element is in a list

Copyright
fish-shell developers