Challenge - 5 Problems
While Loop Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate2:00remaining
Output of a simple while loop counting down
What is the output of this Bash script?
Bash Scripting
count=3 while [ $count -gt 0 ] do echo $count count=$((count - 1)) done
Attempts:
2 left
💡 Hint
Remember the loop runs while count is greater than zero and decreases count each time.
✗ Incorrect
The loop starts with count=3 and prints it, then decreases count by 1 until count is no longer greater than 0. So it prints 3, 2, 1.
💻 Command Output
intermediate2:00remaining
While loop with a break condition
What will this Bash script output?
Bash Scripting
i=1 while true do echo $i if [ $i -eq 3 ]; then break fi i=$((i + 1)) done
Attempts:
2 left
💡 Hint
The loop breaks when i equals 3.
✗ Incorrect
The loop prints i starting from 1, increments i, and breaks when i reaches 3, so it prints 1, 2, 3.
📝 Syntax
advanced2:00remaining
Identify the syntax error in this while loop
Which option shows the correct syntax to fix the error in this Bash while loop?
Bash Scripting
count=5 while [ $count -gt 0 ] echo $count count=$((count - 1)) done
Attempts:
2 left
💡 Hint
A while loop in Bash requires a 'do' keyword after the condition.
✗ Incorrect
The 'do' keyword is mandatory after the while condition to start the loop body. Without it, the script has a syntax error.
🔧 Debug
advanced2:00remaining
Why does this while loop run infinitely?
This script runs forever. What is the reason?
Bash Scripting
num=1 while [ $num -le 3 ] do echo $num done
Attempts:
2 left
💡 Hint
Check if the loop changes the variable controlling the condition.
✗ Incorrect
The variable 'num' is never incremented, so the condition is always true, causing an infinite loop.
🚀 Application
expert3:00remaining
Create a while loop to read lines from a file
Which script correctly reads each line from 'input.txt' and prints it?
Attempts:
2 left
💡 Hint
The 'read' command reads a line, and the loop must redirect input from the file.
✗ Incorrect
Option D correctly uses 'while read line; do ... done < input.txt' to read and print each line. Others have syntax errors or wrong redirection.