Breaking and Continuing Loop Execution

Although the preceding features can provide very neat and controlled execution of loops, sometimes it is more practical to break out of a loop when partway through it. It is possible to do this with the break command. This shell builtin gets you out of the innermost loop that it is in; you can specify greater levels by passing it a numerical argument. The default is 1, which indicates the current loop. break 2 will break out of the innermost loop, and also out of the loop that contains it. break 3 will also break out of the loop around the second loop, and so on. This example has two for loops; the outer loop counts from 1 to 6, while the inner loop runs through a,b,c,d,e,f. As demonstrated by the first test run, the inner loop exits when you press 1, continuing with the next number in sequence. When you press 2, both loops are broken out of, and the execution continues after the final done, with the echo "That's all, folks".

cat break.sh #!/bin/bash for number in 1 2 3 4 5 6 do   echo "In the number loop - $number"   read -n1 -p "Press b to break out of this loop: " x   if [ "$x" == "b" ]; then     break   fi   echo   for letter in a b c d e f   do     echo     echo "Now in the letter loop... $number $letter"     read -n1 -p "Press 1 to break out of this loop, 2 to break out totally: " x     if [ "$x" == "1" ]; then       break     else       if [ "$x" == "2" ]; then         break 2       fi     fi   done   echo done echo echo "That's ...

Get Shell Scripting: Expert Recipes for Linux, Bash, and More now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.