Bird
Raised Fist0
Bash Scriptingscripting~15 mins

C-style for loop in Bash Scripting - Mini Project: Build & Apply

Choose your learning style10 modes available
Using C-style for loop in Bash scripting
📖 Scenario: You are managing a small inventory system using a Bash script. You want to count from 1 to 5 to simulate checking five items in stock.
🎯 Goal: Build a Bash script that uses a C-style for loop to count from 1 to 5 and print each number.
📋 What You'll Learn
Create a variable called start and set it to 1
Create a variable called end and set it to 5
Use a C-style for loop with i starting from start to end
Print the value of i inside the loop
💡 Why This Matters
🌍 Real World
Counting or iterating a fixed number of times is common in automation scripts, like processing files or checking system status.
💼 Career
Knowing how to write loops in Bash helps in system administration, DevOps, and automation roles where scripts manage repetitive tasks.
Progress0 / 4 steps
1
Set up start and end variables
Create a variable called start and set it to 1. Create another variable called end and set it to 5.
Bash Scripting
Hint

Use start=1 and end=5 to create the variables.

2
Write the C-style for loop
Write a C-style for loop using i starting from start to end. Use the syntax for (( i=start; i<=end; i++ )).
Bash Scripting
Hint

Use for (( i=start; i<=end; i++ )) and echo $i inside the loop.

3
Add the loop body to print numbers
Inside the for loop, write echo $i to print the current value of i.
Bash Scripting
Hint

Use echo $i to print the number inside the loop.

4
Run the script and display output
Run the script and print the numbers from 1 to 5, each on its own line.
Bash Scripting
Hint

Run the script using bash script.sh or execute it directly.

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