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
✗ Incorrect
The loop runs from 1 to 5. Each number is multiplied by 2 and printed.
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
✗ Incorrect
Brace expansion {5..1} counts down from 5 to 1.
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'
✗ Incorrect
Brace expansion with '..' generates a sequence of numbers.
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
✗ Incorrect
Only brace expansion {1..10} is valid syntax for this.
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
✗ Incorrect
The third number is the step size in brace expansion.
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
Step 1: Understand the loop range syntax
The loop uses {1..5}, which expands to numbers 1, 2, 3, 4, 5.
Step 2: Check the loop body output
Each iteration prints the current number, so numbers 1 to 5 print on separate lines.
Final Answer:
Prints numbers 1 to 5, each on a new line -> Option B
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
Step 1: Identify correct brace expansion syntax
Bash uses curly braces {start..end} for ranges, so {1..10} is correct.
Step 2: Check other options for syntax errors
Parentheses, square brackets, and angle brackets are invalid for this purpose in Bash loops.
Final Answer:
for i in {1..10}; do echo $i; done -> Option A
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
Step 1: Identify loop values
The loop variable i takes values 3, 4, 5, 6 from {3..6}.
Step 2: Calculate output for each iteration
Each iteration prints i * 2: 3*2=6, 4*2=8, 5*2=10, 6*2=12.
Final Answer:
6
8
10
12 -> Option C
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
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.
Step 2: Verify other parts
Variable $i is defined by the loop, brace syntax is correct, and loop body can be on next lines.
Final Answer:
Missing semicolon or newline after {1..5} -> Option D
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
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.
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.
Final Answer:
for i in {2..10..2}; do echo $i; done -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.