Bird
Raised Fist0
Bash Scriptingscripting~20 mins

until loop in Bash Scripting - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Until Loop Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
Output of a simple until loop
What will be the output of this Bash script?
Bash Scripting
count=1
until [ $count -gt 3 ]
do
  echo $count
  ((count++))
done
A
1
2
3
4
B
1
2
3
C
1
2
DNo output
Attempts:
2 left
💡 Hint
The loop runs until the condition becomes true, so it stops when count is greater than 3.
📝 Syntax
intermediate
2:00remaining
Identify the syntax error in the until loop
Which option contains a syntax error in the until loop?
Bash Scripting
count=0
until [ $count -eq 5 ]
  echo $count
  ((count++))
done
AMissing 'do' keyword after until condition
BIncorrect use of ((count++))
CMissing 'done' keyword at the end
DUsing -eq instead of -lt in condition
Attempts:
2 left
💡 Hint
Check the structure of the until loop syntax.
🔧 Debug
advanced
2:00remaining
Why does this until loop run infinitely?
Consider this script: count=1 until [ $count -gt 5 ] do echo $count done Why does it run forever?
AThe variable 'count' is never incremented inside the loop
BThe condition is always true
CThe 'done' keyword is missing
DThe test command syntax is incorrect
Attempts:
2 left
💡 Hint
Check if the loop changes the variable controlling the condition.
🚀 Application
advanced
2:00remaining
Using until loop to wait for a file
Which script waits until a file named 'ready.txt' exists, then prints 'File is ready'?
A
while [ ! -f ready.txt ]; do sleep 1; done
echo "File is ready"
B
until [ ! -f ready.txt ]; do sleep 1; done
echo "File is ready"
C
while [ -f ready.txt ]; do sleep 1; done
echo "File is ready"
D
until [ -f ready.txt ]; do sleep 1; done
echo "File is ready"
Attempts:
2 left
💡 Hint
The until loop runs while the condition is false, so it waits until the file exists.
🧠 Conceptual
expert
3:00remaining
Behavior of until loop with command exit status
What does this script print? count=1 until ping -c1 -W1 8.8.8.8 >/dev/null 2>&1 echo "Attempt $count failed" ((count++)) done echo "Ping successful after $count attempts"
AInfinite loop without any output
BPrints success message immediately without any attempts
CPrints 'Attempt 1 failed' repeatedly until ping succeeds, then prints success message with count
DRuns once and prints 'Attempt 1 failed' then exits without success message
Attempts:
2 left
💡 Hint
The until loop runs while the command returns failure (non-zero exit).

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

  1. 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.
  2. 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.
  3. Final Answer:

    It repeats commands until the condition becomes true. -> Option A
  4. 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

  1. 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
  2. Step 2: Check each option

    until [ condition ]; do commands; done matches correct syntax. Options B, C, and D use incorrect brackets or missing semicolons.
  3. Final Answer:

    until [ condition ]; do commands; done -> Option A
  4. 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

  1. 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.
  2. Step 2: Trace iterations

    count=1 (prints 1), count=2 (prints 2), count=3 (prints 3), count=4 stops loop because 4 > 3.
  3. Final Answer:

    1 2 3 -> Option C
  4. Quick Check:

    Prints 1 to 3 before stopping [OK]
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

  1. 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).
  2. Step 2: Analyze loop execution

    Since condition is true initially, loop does not run even once.
  3. Final Answer:

    The loop will never run because condition is initially true. -> Option B
  4. 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

  1. 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 ].
  2. 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.
  3. Final Answer:

    until [ -f ready.txt ]; do sleep 1; done -> Option D
  4. Quick Check:

    Loop while file missing, stops when exists [OK]
Hint: Condition [ -f file ] stops when file exists [OK]
Common Mistakes:
  • Using -d instead of -f for file check
  • Using ! -f negation incorrectly
  • Not including sleep to avoid busy wait
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard