2006-11-01 01:23:16 +10:00
\section if if - conditionally execute a command
2005-09-20 23:31:55 +10:00
\subsection if-synopsis Synopsis
2012-09-03 13:24:01 -07:00
<tt>if CONDITION; COMMANDS_TRUE...; [else if CONDITION2; COMMANDS_TRUE2...;] [else; COMMANDS_FALSE...;] end</tt>
2005-09-20 23:31:55 +10:00
\subsection if-description Description
2006-11-02 23:47:25 +10:00
Help cleanup
Large list of changes, including formatting and typos for most commands.
More substantive changes have been made to alias, bind, block, break,
builtin, case, cd, commandline, count, else, emit, fish_config, funced,
function, functions, history, math, mimedb, nextd, not, popd, prevd,
pushd, pwd, random, read, set, set_color, switch, test, trap, type,
ulimit, umask, and while.
2013-05-12 15:56:01 +08:00
<tt>if</tt> will execute the command \c CONDITION. If the condition's
exit status is 0, the commands \c COMMANDS_TRUE will execute. If the
exit status is not 0 and <tt>else</tt> is given, \c COMMANDS_FALSE will
2010-09-18 10:18:26 +08:00
be executed.
2006-11-11 20:52:08 +10:00
2007-08-02 03:35:24 +10:00
In order to use the exit status of multiple commands as the condition
2006-11-11 20:52:08 +10:00
of an if block, use <a href="#begin"><tt>begin; ...; end</tt></a> and
Help cleanup
Large list of changes, including formatting and typos for most commands.
More substantive changes have been made to alias, bind, block, break,
builtin, case, cd, commandline, count, else, emit, fish_config, funced,
function, functions, history, math, mimedb, nextd, not, popd, prevd,
pushd, pwd, random, read, set, set_color, switch, test, trap, type,
ulimit, umask, and while.
2013-05-12 15:56:01 +08:00
the short circuit commands <a href="commands.html#and"><tt>and</tt></a>
and <a href="commands.html#or"><tt>or</tt></a>.
2005-09-20 23:31:55 +10:00
2006-11-02 23:47:25 +10:00
The exit status of the last foreground command to exit can always be
accessed using the <a href="index.html#variables-status">$status</a>
variable.
2005-09-20 23:31:55 +10:00
\subsection if-example Example
<pre>
if test -f foo.txt
echo foo.txt exists
2012-09-03 13:24:01 -07:00
else if test -f bar.txt
2012-09-01 02:14:13 -07:00
echo bar.txt exists
2005-09-20 23:31:55 +10:00
else
2012-09-01 02:14:13 -07:00
echo foo.txt and bar.txt do not exist
2005-09-20 23:31:55 +10:00
end
2012-09-01 02:14:13 -07:00
</pre>will print <tt>foo.txt exists</tt> if the file foo.txt
2010-09-18 10:18:26 +08:00
exists and is a regular file, otherwise it will print
2012-09-01 02:14:13 -07:00
<tt>bar.txt exists</tt> if the file bar.txt exists
and is a regular file, otherwise it will print
<tt>foo.txt and bar.txt do not exist</tt>.