Bird
Raised Fist0
Bash Scriptingscripting~5 mins

Infinite loops in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is an infinite loop in bash scripting?
An infinite loop is a loop that never stops running because its exit condition is never met or it has no exit condition.
Click to reveal answer
beginner
How do you write a simple infinite loop using while in bash?
You can write it as:
while true; do
  # commands
 done
This runs the commands forever until you stop it.
Click to reveal answer
beginner
What command can you use to stop an infinite loop running in the terminal?
Press Ctrl + C to send an interrupt signal that stops the running infinite loop.
Click to reveal answer
intermediate
Why might infinite loops be useful in scripting?
They are useful for tasks that need to run continuously, like monitoring a system or waiting for events.
Click to reveal answer
intermediate
Show an example of an infinite loop using for in bash.
Example:
for (( ; ; )); do
  echo "Looping forever"
  sleep 1
 done
This loops forever because there are no conditions.
Click to reveal answer
Which of these is a correct way to write an infinite loop in bash?
Awhile true; do echo "Hi"; done
Bwhile false; do echo "Hi"; done
Cfor i in 1..10; do echo "Hi"; done
Dif true; then echo "Hi"; fi
How do you stop a running infinite loop in the terminal?
APress Ctrl + C
BPress Ctrl + Z
CClose the terminal window
DType 'exit' inside the loop
What will this loop do?
for (( ; ; )); do echo "Hello"; done
APrint 'Hello' once
BPrint 'Hello' forever
CCause an error
DPrint 'Hello' 10 times
Why should you be careful when writing infinite loops?
AThey always run faster than normal loops
BThey automatically stop after 10 minutes
CThey use less memory
DThey can crash your system if not controlled
Which command inside an infinite loop can help avoid high CPU usage?
Als
Becho "Running"
Csleep 1
Dexit
Explain what an infinite loop is and how you can create one in bash.
Think about loops that never stop running.
You got /3 concepts.
    Describe how to safely stop an infinite loop running in your terminal and why you might want to use infinite loops.
    Consider both stopping and using infinite loops.
    You got /3 concepts.

      Practice

      (1/5)
      1. Which of the following is a correct way to start an infinite loop in bash?
      easy
      A. if true; then echo Loop; fi
      B. for i in 1..10; do echo $i; done
      C. while false; do echo No; done
      D. while true; do echo Hello; done

      Solution

      1. Step 1: Understand infinite loop syntax

        In bash, while true runs the loop forever because the condition is always true.
      2. Step 2: Check each option

        while true; do echo Hello; done uses while true correctly. for i in 1..10; do echo $i; done loops 10 times, not infinite. if true; then echo Loop; fi is a conditional, not a loop. while false; do echo No; done never runs because condition is false.
      3. Final Answer:

        <code>while true; do echo Hello; done</code> -> Option D
      4. Quick Check:

        Infinite loop = while true [OK]
      Hint: Infinite loops use always-true conditions like 'while true' [OK]
      Common Mistakes:
      • Confusing finite loops with infinite loops
      • Using false as loop condition
      • Using if instead of while
      2. Which of the following is the correct syntax for an infinite for loop in bash?
      easy
      A. for (( i=0; i<5; i++ )); do echo $i; done
      B. for i in {1..5}; do echo $i; done
      C. for (( ; ; )); do echo Loop; done
      D. for i in ; do echo $i; done

      Solution

      1. Step 1: Recall infinite for loop syntax

        In bash, for (( ; ; )) creates an infinite loop because it has no start, condition, or increment limits.
      2. Step 2: Analyze options

        for (( ; ; )); do echo Loop; done matches infinite loop syntax. for i in {1..5}; do echo $i; done loops 5 times. for i in ; do echo $i; done is invalid syntax. for (( i=0; i<5; i++ )); do echo $i; done loops 5 times with increment.
      3. Final Answer:

        <code>for (( ; ; )); do echo Loop; done</code> -> Option C
      4. Quick Check:

        Infinite for loop = for (( ; ; )) [OK]
      Hint: Infinite for loops omit all three parts in (( ; ; )) [OK]
      Common Mistakes:
      • Leaving out semicolons in for loop syntax
      • Using range limits in infinite loops
      • Trying to use 'for i in' without values
      3. What will be the output of this script?
      count=1
      while :; do
        echo $count
        ((count++))
        if [ $count -gt 3 ]; then
          break
        fi
      done
      medium
      A. 1 2 3
      B. 1 2 3 4
      C. 1 2 3 4 5
      D. Infinite loop printing numbers

      Solution

      1. Step 1: Understand the loop condition

        The loop uses while : which is an infinite loop, but it has a break condition inside.
      2. Step 2: Trace the loop execution

        It prints count starting at 1, increments count, and breaks when count > 3. So it prints 1, 2, 3 and stops before printing 4.
      3. Final Answer:

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

        Break stops infinite loop at count 4 [OK]
      Hint: Break exits infinite loops early [OK]
      Common Mistakes:
      • Assuming infinite loop prints forever
      • Counting one extra iteration
      • Confusing ':' with 'true'
      4. Identify the error in this infinite loop script:
      while true
        echo "Running"
      done
      medium
      A. Missing semicolon or newline after 'true'
      B. Missing 'do' keyword after while condition
      C. Incorrect use of quotes around echo argument
      D. Missing 'done' keyword at the end

      Solution

      1. Step 1: Check while loop syntax

        Bash requires the keyword do after the while condition to start the loop body.
      2. Step 2: Analyze the script

        The script has while true but no do before echo. This causes a syntax error.
      3. Final Answer:

        Missing 'do' keyword after while condition -> Option B
      4. Quick Check:

        while loops need 'do' before commands [OK]
      Hint: Always put 'do' after while condition [OK]
      Common Mistakes:
      • Forgetting 'do' after while condition
      • Misplacing semicolons
      • Confusing 'done' with 'do'
      5. You want to create an infinite loop that prints "Waiting..." every 2 seconds but stops if a file named stop.txt exists. Which script correctly implements this?
      hard
      A.
      while true; do
        if [ -f stop.txt ]; then
          break
        fi
        echo "Waiting..."
        sleep 2
      done
      B.
      while :
        echo "Waiting..."
        sleep 2
        if [ -f stop.txt ]; then
          break
        fi
      done
      C.
      for (( ; ; )); do
        echo "Waiting..."
        sleep 2
        if test -f stop.txt; then
          break
        fi
      done
      D.
      while true; do
        echo "Waiting..."
        sleep 2
        if [ -e stop.txt ]; then
          exit
        fi
      done

      Solution

      1. Step 1: Check loop structure and break condition

        while true; do
          if [ -f stop.txt ]; then
            break
          fi
          echo "Waiting..."
          sleep 2
        done
        uses while true with a break if stop.txt exists, which stops the loop correctly.
      2. Step 2: Verify order and commands

        It checks for stop.txt first and breaks if the file exists, otherwise prints "Waiting..." and sleeps 2 seconds. This matches the requirement.
      3. Final Answer:

        while true; do if [ -f stop.txt ]; then break fi echo "Waiting..." sleep 2 done -> Option A
      4. Quick Check:

        Break on file check inside infinite loop [OK]
      Hint: Check file then break inside infinite loop [OK]
      Common Mistakes:
      • Placing break after sleep without file check
      • Using exit instead of break inside loop
      • Incorrect loop syntax or missing do/done
      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