2018-12-16 17:39:33 -08:00
while - perform a command multiple times
2019-01-02 20:10:47 -08:00
========================================
2018-12-16 17:39:33 -08:00
2018-12-17 17:58:24 -08:00
Synopsis
--------
2018-12-16 13:08:41 -08:00
while CONDITION; COMMANDS...; end
2018-12-17 17:58:24 -08:00
2018-12-16 13:08:41 -08:00
2018-12-18 18:44:30 -08:00
Description
2019-01-02 20:10:47 -08:00
-----------
2018-12-16 13:08:41 -08:00
2018-12-19 12:02:45 -08:00
`` while `` repeatedly executes `` CONDITION `` , and if the exit status is 0, then executes `` COMMANDS `` .
2018-12-16 13:08:41 -08:00
2018-12-19 12:02:45 -08:00
If the exit status of `` CONDITION `` is non-zero on the first iteration, `` COMMANDS `` will not be
executed at all, and the exit status of the loop set to the exit status of `` CONDITION `` .
2018-12-16 13:08:41 -08:00
The exit status of the loop is 0 otherwise.
2018-12-19 12:02:45 -08:00
You can use <a href="#and">`` and ` ` </a> or <a href="#or"> ` ` or ` ` </a> for complex conditions. Even more complex control can be achieved with ` ` while true `` containing a <a href="#break">break</a>.
2018-12-16 13:08:41 -08:00
2018-12-18 18:44:30 -08:00
Example
2019-01-02 20:10:47 -08:00
-------
2018-12-16 13:08:41 -08:00
2018-12-18 19:14:04 -08:00
::
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.