Autoit Continue Loop Statement With No Matching While Do or for
Introduction
The continue statement is a Bash builtin that alters the flow of script loops. The concept is not unique to Bash and appears in other programming languages.
The best way to understand how the Bash continue statement works is through hands-on examples.
This tutorial shows how to use the Bash continue statement in Bash scripts.
Prerequisites
- A machine running Linux or macOS.
- A text editor for the examples.
- Basic knowledge of Bash scripting.
The Bash continue Statement
The Bash continue statement resumes the following iteration in a loop or looping statement.
The syntax is:
continue <integer> The continue statement only has meaning when applied to loops. The integer value indicates the depth for the continue statement. By default, the integer is 1 and writing the number is not mandatory. Increase the number to resume an outer loop statement.
Use a continue statement as a loop control statement. For example, the continue statement helps end the current iteration inside a loop when meeting a specific condition. Depending on the loop type, the program resumes at the next iteration or restarts the loop.
Bash continue Examples
Below are examples and explanations of working with the continue statement in Bash scripts.
The following primary loop constructs showcase how the statement works:
- The for loop continues at the next iteration when combined with continue.
- The continue statement restarts the
whileanduntilloops.
The select command also appears in the examples, even though it is not a primary loop construct. The statement functions as a loop, and the continue statement works for any looping command.
Using Bash Continue with a for Loop
Use the continue statement inside a conditional if to control the flow of a for :
#!/bin/bash for i in {1..10} do if [[ $i == '9' ]] then echo "Number $i!" continue fi echo "$i" done echo "Done!"
The code does the following:
- Line 3 starts the
forloop condition, iterating the variableifrom1to10. - Line 5 checks the
ivalue. When the variable equals9, the program echoes a message and restarts the loop at the next iteration (line 3). - Line 10 prints the number to the console only when the conditional statement in line 5 is False.
Run the script to see the results.
The output prints all the individual numbers to the console. When the condition in line 5 evaluates to True ( $i == '9' ), the console echoes a message.
Using Bash Continue with Nested Loop
The continue statement works with nested loops as well. For example, use continue 2 to resume an outer loop:
#!/bin/bash for i in {1..5} do for j in {1..5} do if [[ $i -eq $j ]] then echo "$i = $j" continue 2 fi echo "$i =/= $j" done done echo "Done!"
The program does the following:
- Line 3 starts the outer loop, incrementing the variable
ifrom1to5. - Line 5 starts an inner for loop, incrementing the variable
jfrom1to5for eachiincrement. - Line 7 checks if the variables
iandjare equal ($i -eq $j). If they are, thecontinue 2statement resumes the outer loop at the next iteration. However, if the values are different, the program continues as expected.
Run the script to see the program output.
Each time the two values are equal, the first number increases.
Using Bash Continue with a while Loop
Below is an example Bash script that uses the <strong>continue</strong> statement in a while loop:
#!/bin/bash i=0 while [[ $i -lt 11 ]] do if [[ "$i" == '9' ]] then echo "Number $i!" ((i++)) continue fi echo $i ((i++)) done
Each line does the following:
- Line 3 defines a variable
iand sets the value to0. - Line 5 initiates a
whileloop. The end condition is wheniis less than11. - Line 7 states a condition check using an
ifstatement. When the variableiequals9, the program proceeds to lines 9-11. In all other cases, the code jumps to line 13. - Lines 9-11 print a message to the console, increment
i, and thecontinuestatement resumes the loop at line 5. - Lines 13 and 14 print the variable
ito the console and increment it.
To see the output, run the script from the terminal.
The program prints all the numbers to the console. Due to the conditional and continue statements, a different message prints for number 9 .
Using Bash Continue with an until Loop
Combine the continue statement with an until loop and provide a condition to change the loop behavior for a certain value. For example, try the following script:
#!/bin/bash i=0 until [[ $i -gt 10 ]] do if [[ $i -eq 9 ]] then echo "Number $i!" ((i++)) continue fi echo $i ((i++)) done
The code increments a variable and loops until the value reaches 10 . When the variable equals 9 , the program outputs a different message. The continue statement restarts the until loop and continues as usual.
Using Bash Continue with a select Loop
The select command is a particular case because it is not a primary Bash scripting loop. The command creates menus that require user input. Use the continue statement to provide a different output based on the user-selected value.
As an example, try the following Bash script:
#!/bin/bash PS3="Choose a number: " select i in {1..10} do echo "Selected number: $i" if [[ $REPLY -eq 9 ]] then echo "Number $i!" continue fi done
The script consists of the following elements:
- The
PS3in line 3 is the display message for theselectloop. - Line 5 defines the loop condition, listing numbers from
1to10. The variableistores the user input. - Line 7 echoes the selection.
- Line 8 performs a check. If the user input value is
9, the program prints a message to the console and continues theselectloop at the next iteration.
Run the script and test for different values to see the output.
To exit the program, press CTRL+C or add a break statement.
Conclusion
After following the examples from this tutorial, you know the purpose of a continue statement and how to use it with loops in Bash scripting.
Next, learn how to write a Bash function.
Was this article helpful?
Yes No
Source: https://phoenixnap.com/kb/bash-continue
0 Response to "Autoit Continue Loop Statement With No Matching While Do or for"
Post a Comment