Creating a script file (.sh) in Bash Scripting - Performance & Efficiency
When we create a script file in bash, it's important to know how the time to create it grows as the script content grows.
We want to understand how the script creation time changes when we add more lines or commands.
Analyze the time complexity of the following code snippet.
#!/bin/bash
echo "#!/bin/bash" > myscript.sh
for i in $(seq 1 100); do
echo "echo Line $i" >> myscript.sh
done
chmod +x myscript.sh
This script creates a new bash script file named myscript.sh and writes 100 lines into it, then makes it executable.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The
forloop that writes each line to the file. - How many times: It runs once for each line, here 100 times.
As the number of lines to write increases, the time to create the script grows roughly the same way.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 10 write commands |
| 100 | About 100 write commands |
| 1000 | About 1000 write commands |
Pattern observation: The time grows directly with the number of lines added.
Time Complexity: O(n)
This means the time to create the script grows linearly with the number of lines you write.
[X] Wrong: "Adding more lines won't affect the script creation time much because it's just writing text."
[OK] Correct: Each line requires a write operation, so more lines mean more work and more time.
Understanding how loops affect script creation time helps you think clearly about how your scripts scale as they grow.
"What if we used a single echo command with all lines combined instead of a loop? How would the time complexity change?"