2006-10-31 23:23:16 +08:00
|
|
|
\section if if - conditionally execute a command
|
2005-09-20 21:31:55 +08:00
|
|
|
|
|
|
|
\subsection if-synopsis Synopsis
|
2012-09-04 04:24:01 +08:00
|
|
|
<tt>if CONDITION; COMMANDS_TRUE...; [else if CONDITION2; COMMANDS_TRUE2...;] [else; COMMANDS_FALSE...;] end</tt>
|
2005-09-20 21:31:55 +08:00
|
|
|
|
|
|
|
\subsection if-description Description
|
2006-11-02 21:47:25 +08: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 18:52:08 +08:00
|
|
|
|
2007-08-02 01:35:24 +08:00
|
|
|
In order to use the exit status of multiple commands as the condition
|
2006-11-11 18:52:08 +08: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 21:31:55 +08:00
|
|
|
|
2006-11-02 21:47:25 +08: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 21:31:55 +08:00
|
|
|
\subsection if-example Example
|
|
|
|
|
|
|
|
<pre>
|
|
|
|
if test -f foo.txt
|
|
|
|
echo foo.txt exists
|
2012-09-04 04:24:01 +08:00
|
|
|
else if test -f bar.txt
|
2012-09-01 17:14:13 +08:00
|
|
|
echo bar.txt exists
|
2005-09-20 21:31:55 +08:00
|
|
|
else
|
2012-09-01 17:14:13 +08:00
|
|
|
echo foo.txt and bar.txt do not exist
|
2005-09-20 21:31:55 +08:00
|
|
|
end
|
2012-09-01 17:14:13 +08: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 17:14:13 +08: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>.
|