Brace expansion ({1..10}) in Bash Scripting - Time & Space Complexity
We want to understand how the time it takes to run a bash script using brace expansion changes as the range grows.
Specifically, how does the number of generated items affect the script's work?
Analyze the time complexity of the following code snippet.
for i in {1..10}
do
echo "Number: $i"
done
This script prints numbers from 1 to 10 using brace expansion to generate the list.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The for-loop iterates over each number generated by the brace expansion.
- How many times: Exactly once for each number in the range (here, 10 times).
As the range increases, the loop runs more times, so the work grows directly with the number of items.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 echo commands |
| 100 | 100 echo commands |
| 1000 | 1000 echo commands |
Pattern observation: The number of operations grows in a straight line with the input size.
Time Complexity: O(n)
This means the time to run the script grows directly in proportion to how many numbers are in the range.
[X] Wrong: "Brace expansion runs instantly no matter how big the range is."
[OK] Correct: The shell must generate and loop over each item, so more items mean more work and longer time.
Understanding how loops scale with input size is a key skill in scripting and automation, helping you write efficient scripts that handle bigger tasks smoothly.
"What if we replaced brace expansion with a command that generates numbers dynamically, like seq? How would the time complexity change?"