📖 Scenario: You are creating a simple bash script that counts numbers from 1 up to a limit. This is useful when you want to repeat a task a certain number of times.
🎯 Goal: Build a bash script that uses an until loop to count from 1 to 5 and print each number.
📋 What You'll Learn
Create a variable count starting at 1
Create a variable limit set to 5
Use an until loop that runs until count is greater than limit
Inside the loop, print the current count value
Increment count by 1 inside the loop
💡 Why This Matters
🌍 Real World
Counting loops are common in scripts that automate tasks like backups, monitoring, or repeated checks.
💼 Career
Understanding loops in bash scripting is essential for system administrators and DevOps engineers to automate repetitive tasks efficiently.
Progress0 / 4 steps
1
Set up the starting count variable
Create a variable called count and set it to 1.
Bash Scripting
Hint
Use count=1 to set the variable.
2
Set the limit variable
Create a variable called limit and set it to 5.
Bash Scripting
Hint
Use limit=5 to set the maximum count.
3
Write the until loop to count
Write an until loop that runs until count is greater than limit. Inside the loop, print the value of count and then increase count by 1.
Bash Scripting
Hint
Use until [ "$count" -gt "$limit" ] to start the loop. Use echo "$count" to print. Use count=$((count + 1)) to increase count.
4
Run the script to see the output
Run the script to print numbers from 1 to 5 using the until loop.
Bash Scripting
Hint
Run the script in your terminal. You should see numbers 1 to 5 printed each on a new line.
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