Bird
Raised Fist0
Bash Scriptingscripting~5 mins

for loop with range ({1..10}) in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the syntax for i in {1..10} do in a bash script?
It creates a loop that runs 10 times, with the variable i taking values from 1 to 10 in order.
Click to reveal answer
beginner
How do you print numbers 1 to 10 using a for loop with range in bash?
Use:
for i in {1..10}; do
echo $i
done

This prints numbers 1 through 10, each on its own line.
Click to reveal answer
intermediate
Can the range in {1..10} be changed to count backwards?
Yes. You can write {10..1} to count down from 10 to 1 in the loop.
Click to reveal answer
intermediate
What happens if you use for i in {1..10..2} in bash?
The loop counts from 1 to 10 in steps of 2, so i takes values 1, 3, 5, 7, 9.
Click to reveal answer
advanced
Why is for i in {1..10} preferred over using seq 1 10 in some cases?
Because {1..10} is a bash brace expansion that is faster and does not require calling an external command like seq.
Click to reveal answer
What will the following bash code print?
for i in {1..5}; do echo $((i * 2)); done
A5 10 15 20 25
B1 2 3 4 5
C2 4 6 8 10
DError
How do you write a for loop in bash to count down from 5 to 1?
Afor i in {1..5}; do ... done
Bfor i in {5..1}; do ... done
Cfor i in seq 5 1; do ... done
Dfor i in (5..1); do ... done
What does the '..' operator do in {1..10} in bash?
AIt creates a list of numbers from 1 to 10
BIt performs a subtraction
CIt is a syntax error
DIt creates a string '1..10'
Which of these is a valid way to loop over numbers 1 to 10 in bash?
Afor i in (1..10); do echo $i; done
Bfor i in <1..10>; do echo $i; done
Cfor i in [1..10]; do echo $i; done
Dfor i in {1..10}; do echo $i; done
What will for i in {1..10..3} do?
ALoop from 1 to 10 in steps of 3
BLoop from 1 to 3 ten times
CLoop from 3 to 10 in steps of 1
DSyntax error
Explain how to use a for loop with a range in bash to print numbers 1 to 10.
Think about how to write a loop that repeats 10 times with numbers from 1 to 10.
You got /4 concepts.
    Describe how to modify the range in a bash for loop to count backwards or use steps.
    Consider how the numbers inside braces control the loop sequence.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the following Bash loop do?
      for i in {1..5}; do echo $i; done
      easy
      A. Causes a syntax error
      B. Prints numbers 1 to 5, each on a new line
      C. Prints numbers 0 to 4, each on a new line
      D. Prints the string '{1..5}' once

      Solution

      1. Step 1: Understand the loop range syntax

        The loop uses {1..5}, which expands to numbers 1, 2, 3, 4, 5.
      2. Step 2: Check the loop body output

        Each iteration prints the current number, so numbers 1 to 5 print on separate lines.
      3. Final Answer:

        Prints numbers 1 to 5, each on a new line -> Option B
      4. Quick Check:

        Range {1..5} loops from 1 to 5 [OK]
      Hint: Curly braces {1..5} generate numbers 1 to 5 [OK]
      Common Mistakes:
      • Thinking {1..5} is a string, not a range
      • Confusing range start and end values
      • Expecting zero-based counting
      2. Which of the following is the correct syntax to loop from 1 to 10 in Bash using brace expansion?
      easy
      A. for i in {1..10}; do echo $i; done
      B. for i in [1..10]; do echo $i; done
      C. for i in (1..10); do echo $i; done
      D. for i in <1..10>; do echo $i; done

      Solution

      1. Step 1: Identify correct brace expansion syntax

        Bash uses curly braces {start..end} for ranges, so {1..10} is correct.
      2. Step 2: Check other options for syntax errors

        Parentheses, square brackets, and angle brackets are invalid for this purpose in Bash loops.
      3. Final Answer:

        for i in {1..10}; do echo $i; done -> Option A
      4. Quick Check:

        Brace expansion uses curly braces {..} [OK]
      Hint: Use curly braces {start..end} for ranges in Bash loops [OK]
      Common Mistakes:
      • Using parentheses or brackets instead of braces
      • Missing the 'in' keyword
      • Forgetting to close the loop with 'done'
      3. What is the output of this script?
      for i in {3..6}; do echo $((i * 2)); done
      medium
      A. 2 4 6 8
      B. 3 4 5 6
      C. 6 8 10 12
      D. Error: invalid arithmetic

      Solution

      1. Step 1: Identify loop values

        The loop variable i takes values 3, 4, 5, 6 from {3..6}.
      2. Step 2: Calculate output for each iteration

        Each iteration prints i * 2: 3*2=6, 4*2=8, 5*2=10, 6*2=12.
      3. Final Answer:

        6 8 10 12 -> Option C
      4. Quick Check:

        Multiply each i by 2 [OK]
      Hint: Multiply loop variable inside $(( )) for arithmetic [OK]
      Common Mistakes:
      • Confusing loop values with output
      • Using single parentheses instead of $(( ))
      • Expecting space-separated output on one line
      4. Find the error in this Bash loop:
      for i in {1..5} do
      echo $i
      done
      medium
      A. Variable $i is not defined
      B. Loop body must be on the same line as for
      C. Brace expansion syntax is wrong
      D. Missing semicolon or newline after {1..5}

      Solution

      1. Step 1: Check for syntax correctness in loop header

        The for loop header must end with a semicolon or newline before 'do'. Here, 'do' follows directly after {1..5} without either, causing a syntax error.
      2. Step 2: Verify other parts

        Variable $i is defined by the loop, brace syntax is correct, and loop body can be on next lines.
      3. Final Answer:

        Missing semicolon or newline after {1..5} -> Option D
      4. Quick Check:

        Loop header must end properly before 'do' [OK]
      Hint: Put semicolon or newline before 'do' in for loops [OK]
      Common Mistakes:
      • Omitting semicolon or newline before 'do'
      • Misunderstanding brace expansion syntax
      • Thinking loop body must be on same line
      5. You want to print only even numbers from 2 to 10 using a Bash for loop with brace expansion. Which script achieves this?
      hard
      A. for i in {2..10..2}; do echo $i; done
      B. for i in {1..10}; do if [ $i % 2 == 0 ]; then echo $i; fi; done
      C. for i in {2..10}; do echo $((i*2)); done
      D. for i in {2..10..3}; do echo $i; done

      Solution

      1. Step 1: Understand brace expansion with step

        Brace expansion supports {start..end..step}, so {2..10..2} generates even numbers 2,4,6,8,10.
      2. Step 2: Check other options

        B uses [ ] test which performs string comparison, not arithmetic modulo, so never prints evens; C multiplies numbers incorrectly to 4,6,8,10,12,14,16,18,20; D steps by 3, not 2.
      3. Final Answer:

        for i in {2..10..2}; do echo $i; done -> Option A
      4. Quick Check:

        Use {start..end..step} for stepped ranges [OK]
      Hint: Use {start..end..step} to loop with steps in Bash [OK]
      Common Mistakes:
      • Not using step in brace expansion
      • Multiplying loop variable instead of stepping
      • Using wrong step size
      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