2019-03-31 09:05:09 +00:00
.. _cmd-while:
2018-12-17 01:39:33 +00:00
while - perform a command multiple times
2019-01-03 04:10:47 +00:00
========================================
2018-12-17 01:39:33 +00:00
2018-12-18 01:58:24 +00:00
Synopsis
--------
2018-12-16 21:08:41 +00:00
2019-09-17 09:59:04 +00:00
::
while CONDITION; COMMANDS...; end
2018-12-18 01:58:24 +00:00
2018-12-16 21:08:41 +00:00
2018-12-19 02:44:30 +00:00
Description
2019-01-03 04:10:47 +00:00
-----------
2018-12-16 21:08:41 +00:00
2018-12-19 20:02:45 +00:00
`` while `` repeatedly executes `` CONDITION `` , and if the exit status is 0, then executes `` COMMANDS `` .
2018-12-16 21:08:41 +00:00
2019-02-24 23:01:16 +00:00
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.)
2018-12-16 21:08:41 +00:00
2019-03-31 09:24:04 +00:00
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>` .
2018-12-16 21:08:41 +00:00
2018-12-19 02:44:30 +00:00
Example
2019-01-03 04:10:47 +00:00
-------
2018-12-16 21:08:41 +00:00
2018-12-19 03:14:04 +00:00
::
while test -f foo.txt; or test -f bar.txt ; echo file exists; sleep 10; end
2021-02-02 07:35:38 +00:00
# outputs 'file exists' at 10 second intervals,
# as long as the file foo.txt or bar.txt exists.
2018-12-19 03:14:04 +00:00