mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-29 13:23:53 +08:00
be451091d4
We use plural "*OPTIONS*" more often than "*OPTION*...", so let's do that everywhere. In some other places where we do have an ellipsis, make sure to use singular, since the ellipsis already means repetition. This change is incomplete, and I'm not sure if this is worth it, since it's subjective, so I might drop it.
29 lines
885 B
ReStructuredText
29 lines
885 B
ReStructuredText
.. _cmd-while:
|
|
|
|
while - perform a set of commands multiple times
|
|
================================================
|
|
|
|
Synopsis
|
|
--------
|
|
|
|
**while** *CONDITION*; *COMMANDS*; **end**
|
|
|
|
Description
|
|
-----------
|
|
|
|
**while** repeatedly executes ``CONDITION``, and if the exit status is 0, then executes ``COMMANDS``.
|
|
|
|
The exit status of the **while** loop is the exit status of the last iteration of the ``COMMANDS`` executed, or 0 if none were executed. (This matches other shells and is POSIX-compatible.)
|
|
|
|
You can use :ref:`and <cmd-and>` or :ref:`or <cmd-or>` for complex conditions. Even more complex control can be achieved with ``while true`` containing a :ref:`break <cmd-break>`.
|
|
|
|
Example
|
|
-------
|
|
|
|
::
|
|
|
|
while test -f foo.txt; or test -f bar.txt ; echo file exists; sleep 10; end
|
|
# outputs 'file exists' at 10 second intervals,
|
|
# as long as the file foo.txt or bar.txt exists.
|
|
|