An until loop runs the commands inside it repeatedly until the given condition becomes true. It keeps running while the condition is false.
Click to reveal answer
beginner
How is an until loop different from a while loop?
A while loop runs while the condition is true. An until loop runs while the condition is false, stopping when it becomes true.
Click to reveal answer
beginner
Write the basic syntax of an until loop in Bash.
until [ condition ]
do
commands
done
Click to reveal answer
beginner
What will this script print?
count=1
until [ $count -gt 3 ]
do
echo $count
((count++))
done
It will print:
1
2
3
The loop runs until count is greater than 3, so it prints 1, 2, and 3.
Click to reveal answer
intermediate
Why might you choose an until loop instead of a while loop?
You use until when you want to repeat commands until a condition becomes true. It can make your code easier to read if you think in terms of "keep going until this happens."
Click to reveal answer
What condition causes an until loop to stop running?
AWhen the condition becomes true
BWhen the condition becomes false
CAfter one iteration
DNever stops
✗ Incorrect
An until loop runs while the condition is false and stops when it becomes true.
Which of these is the correct syntax to start an until loop?
Awhile [ condition ]; do
Buntil [ condition ]; do
Cfor i in [ condition ]; do
Dif [ condition ]; then
✗ Incorrect
The until loop starts with until [ condition ]; do.
What will this script print?
count=5
until [ $count -lt 3 ]
do
echo $count
((count--))
done
ANothing
B3 4 5
C1 2 3
D5 4 3
✗ Incorrect
The loop runs until count is less than 3, so it prints 5, 4, and 3.
Which loop runs while the condition is true?
Auntil loop
Bnone
Cwhile loop
Dboth until and while
✗ Incorrect
A while loop runs while the condition is true.
What happens if the condition in an until loop is true at the start?
AThe loop does not run at all
BThe loop runs forever
CThe loop runs once
DThe loop runs twice
✗ Incorrect
If the condition is true at the start, the until loop does not run.
Explain how an until loop works in Bash and give a simple example.
Think about repeating something until a condition becomes true.
You got /4 concepts.
Compare and contrast until and while loops in Bash scripting.
Focus on when each loop continues and stops.
You got /4 concepts.
Practice
(1/5)
1. What does an until loop do in bash scripting?
easy
A. It repeats commands until the condition becomes true.
B. It repeats commands while the condition is true.
C. It runs commands only once regardless of condition.
D. It runs commands only if the condition is false.
Solution
Step 1: Understand the until loop behavior
An until loop runs repeatedly until its condition becomes true, meaning it stops when the condition is true.
Step 2: Compare options with definition
It repeats commands until the condition becomes true. correctly states the loop repeats until the condition is true. It repeats commands while the condition is true. describes a while loop. Options C and D are incorrect behaviors.
Final Answer:
It repeats commands until the condition becomes true. -> Option A
Quick Check:
until loop = repeat until true [OK]
Hint: Remember: until stops when condition is true [OK]
Common Mistakes:
Confusing until with while loop
Thinking until runs only once
Believing until runs while condition is true
2. Which of the following is the correct syntax for an until loop in bash?
easy
A. until [ condition ]; do commands; done
B. until ( condition ) { commands }
C. until { condition } do commands done
D. until condition do commands done
Solution
Step 1: Recall bash until loop syntax
The correct syntax uses square brackets for condition, followed by do and done keywords: until [ condition ]; do commands; done
Step 2: Check each option
until [ condition ]; do commands; done matches correct syntax. Options B, C, and D use incorrect brackets or missing semicolons.
Final Answer:
until [ condition ]; do commands; done -> Option A
Quick Check:
Syntax = until [ condition ]; do ... done [OK]
Hint: Use square brackets and do/done keywords [OK]
Common Mistakes:
Using parentheses instead of square brackets
Omitting do or done keywords
Missing semicolon before do
3. What will be the output of this script?
count=1
until [ $count -gt 3 ]
do
echo $count
((count++))
done
medium
A. 1 2
B. 1 2 3 4
C. 1 2 3
D. No output, infinite loop
Solution
Step 1: Analyze loop condition and increments
The loop runs until count is greater than 3. Starting at 1, it prints count and increments it each time.
Hint: Loop stops when count > 3, so prints 1 to 3 [OK]
Common Mistakes:
Thinking it prints 4
Confusing until with while loop condition
Assuming infinite loop
4. Identify the error in this until loop script:
count=1
until [ $count -lt 5 ]
do
echo $count
((count++))
done
medium
A. Missing semicolon after condition.
B. The loop will never run because condition is initially true.
C. The variable count is not initialized.
D. The condition should use -gt instead of -lt.
Solution
Step 1: Understand the until loop condition
until runs while the condition is false and stops when true. Here, condition is count -lt 5, which is true at start (count=1).
Step 2: Analyze loop execution
Since condition is true initially, loop does not run even once.
Final Answer:
The loop will never run because condition is initially true. -> Option B
Quick Check:
until stops immediately if condition true [OK]
Hint: until runs only while condition is false [OK]
Common Mistakes:
Confusing -lt with -gt in condition
Assuming loop runs at least once
Missing that until stops when condition true
5. You want to write a bash script that waits until a file named ready.txt exists before continuing. Which until loop correctly implements this?
hard
A. until [ ! -f ready.txt ]; do sleep 1; done
B. until [ ! -f ready.txt ]; do echo 'Waiting'; done
C. until [ -d ready.txt ]; do sleep 1; done
D. until [ -f ready.txt ]; do sleep 1; done
Solution
Step 1: Understand the goal and condition
The script should wait until the file exists. The loop runs while the condition is false, so condition should be "file exists" [ -f ready.txt ].
Step 2: Check each option's condition
until [ -f ready.txt ]; do sleep 1; done loops while [ -f ] is false (file missing), sleeping until file exists. B, C (-d for directory), and D use wrong conditions.
Final Answer:
until [ -f ready.txt ]; do sleep 1; done -> Option D