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