Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Syntax for a single-line while loop in Bash

I am having trouble coming up with the right combination of semicolons and/or braces. I'd like to do this, but as a one-liner from the command line:

while [ 1 ] do     foo     sleep 2 done 
like image 685
Brian Deacon Avatar asked Aug 17 '09 16:08

Brian Deacon


People also ask

Do while loops bash?

There is no do-while loop in bash. To execute a command first then run the loop, you must either execute the command once before the loop or use an infinite loop with a break condition.

What is while read line in shell script?

The while read loop. Here, cat reads each line from standard input and writes the line to standard output. It continues until the end-of-file condition is reached on file1, then it stops. In shell programming, we can read a line from standard input using the read command.


1 Answers

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 > done hello hello hello ^C $ <arrow up> while true; do    echo "hello";    sleep 2; done 
like image 114
Stefano Borini Avatar answered Oct 05 '22 09:10

Stefano Borini