Syntax for a single-line while loop in Bash Syntax for a single-line while loop in Bash bash bash

Syntax for a single-line while loop in Bash


while true; do foo; sleep 2; done

By the way, if you type it as a multiline (as you are showing) at the command prompt and then call the history with arrow up, you will get it on a single line, correctly punctuated.

$ while true> do>    echo "hello">    sleep 2> donehellohellohello^C$ <arrow up> while true; do    echo "hello";    sleep 2; done


It's also possible to use sleep command in while's condition. Making one-liner looking more clean imho.

while sleep 2; do echo thinking; done


Colon is always "true":

while :; do foo; sleep 2; done