Bird
Raised Fist0
Bash Scriptingscripting~3 mins

Why C-style for loop in Bash Scripting? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

What if you could tell your computer to do boring tasks for you with just one line?

The Scenario

Imagine you need to print numbers from 1 to 10 in your terminal. Doing this by typing each number manually or repeating the same command over and over is tiring and boring.

The Problem

Typing commands one by one is slow and easy to make mistakes. If you want to change the range, you must rewrite many lines. It wastes time and can cause errors.

The Solution

The C-style for loop lets you write a simple, clear command that repeats actions automatically. You set where to start, when to stop, and how to move forward, all in one line.

Before vs After
✗ Before
echo 1
echo 2
echo 3
echo 4
echo 5
✓ After
for ((i=1; i<=5; i++)); do echo $i; done
What It Enables

With the C-style for loop, you can easily repeat tasks many times without extra typing, making your scripts faster and less error-prone.

Real Life Example

Suppose you want to check the status of 10 servers by pinging each one. Instead of typing ping commands 10 times, a C-style for loop can do it all quickly.

Key Takeaways

Manual repetition is slow and error-prone.

C-style for loop automates repeated actions with clear control.

It saves time and reduces mistakes in scripts.

Practice

(1/5)
1. What does the following C-style for loop do in bash?
for ((i=1; i<=3; i++)); do echo $i; done
easy
A. Prints numbers 1, 2, and 3 each on a new line
B. Prints numbers 0, 1, and 2 each on a new line
C. Prints numbers 1, 2, 3, and 4 each on a new line
D. Causes a syntax error

Solution

  1. Step 1: Understand the loop initialization and condition

    The loop starts with i=1 and runs while i is less than or equal to 3.
  2. Step 2: Analyze the increment and output

    Each iteration prints the current value of i, then increases i by 1 until i becomes 4 and stops.
  3. Final Answer:

    Prints numbers 1, 2, and 3 each on a new line -> Option A
  4. Quick Check:

    Loop from 1 to 3 prints 1, 2, 3 [OK]
Hint: Check start, end, and increment values carefully [OK]
Common Mistakes:
  • Starting loop at 0 instead of 1
  • Confusing <= with < in condition
  • Forgetting to increment i
2. Which of the following is the correct syntax for a C-style for loop in bash?
easy
A. for (i=0; i<5; i++) do echo $i; done
B. for ((i=0; i<5; i++)); do echo $i; done
C. for [i=0; i<5; i++] do echo $i; done
D. for {i=0; i<5; i++} do echo $i; done

Solution

  1. Step 1: Identify correct C-style for loop syntax in bash

    Bash requires double parentheses (( )) around the loop control with semicolons separating init, condition, and increment.
  2. Step 2: Check each option

    for ((i=0; i<5; i++)); do echo $i; done uses double parentheses and semicolons correctly; others use incorrect brackets or missing parentheses.
  3. Final Answer:

    for ((i=0; i<5; i++)); do echo $i; done -> Option B
  4. Quick Check:

    Double parentheses and semicolons = correct syntax [OK]
Hint: Look for double parentheses and semicolons inside [OK]
Common Mistakes:
  • Using single parentheses instead of double
  • Using square or curly brackets
  • Missing semicolons between parts
3. What is the output of this bash script?
for ((i=2; i<=6; i+=2)); do echo $i; done
medium
A. 2 3 4 5 6
B. Syntax error
C. 2 4 6 8
D. 2 4 6

Solution

  1. Step 1: Understand loop initialization and increment

    The loop starts at i=2, runs while i is less than or equal to 6, and increments i by 2 each time.
  2. Step 2: List values printed

    Values printed are 2, then 4, then 6. After 6, i becomes 8 which breaks the condition.
  3. Final Answer:

    2 4 6 -> Option D
  4. Quick Check:

    Increment by 2 from 2 to 6 prints 2,4,6 [OK]
Hint: Check increment step and loop condition carefully [OK]
Common Mistakes:
  • Assuming increment is 1 by default
  • Including numbers beyond the condition
  • Confusing <= with <
4. Identify the error in this bash C-style for loop:
for ((i=0; i<5 i++)); do echo $i; done
medium
A. Missing semicolon between condition and increment
B. Using single parentheses instead of double
C. Incorrect variable name
D. Missing do keyword

Solution

  1. Step 1: Check loop syntax parts

    The loop control must have three parts separated by semicolons: initialization, condition, and increment.
  2. Step 2: Locate missing semicolon

    Between 'i<5' and 'i++' there is no semicolon, causing a syntax error.
  3. Final Answer:

    Missing semicolon between condition and increment -> Option A
  4. Quick Check:

    Semicolons separate parts in C-style for loops [OK]
Hint: Check for three semicolon-separated parts inside (( )) [OK]
Common Mistakes:
  • Omitting semicolons between parts
  • Using single parentheses
  • Forgetting do keyword
5. You want to print all odd numbers from 1 to 9 using a C-style for loop in bash. Which script achieves this?
hard
A. for ((i=1; i<10; i++)); do if (( i % 2 == 0 )); then echo $i; fi; done
B. for ((i=0; i<10; i++)); do if (( i % 2 == 0 )); then echo $i; fi; done
C. for ((i=1; i<=9; i+=2)); do echo $i; done
D. All of the above

Solution

  1. Step 1: Analyze for ((i=1; i<=9; i+=2)); do echo $i; done

    for ((i=1; i<=9; i+=2)); do echo $i; done starts at 1, increments by 2, prints 1,3,5,7,9 directly.
  2. Step 2: Analyze options B and C

    Both loop with i++ and check if (( i % 2 == 0 )), which selects even numbers: B prints 0,2,4,6,8; C prints 2,4,6,8.
  3. Final Answer:

    for ((i=1; i<=9; i+=2)); do echo $i; done -> Option C
  4. Quick Check:

    Increment by 2 from 1 to <=9 prints odds 1-9 [OK]
Hint: Use increments or modulo checks to filter odd numbers [OK]
Common Mistakes:
  • Using wrong increment step
  • Starting from 0 without filtering
  • Forgetting to check odd condition
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