Background processes (&) in Linux CLI - Time & Space Complexity
When running commands in the background using &, we want to understand how this affects the time it takes for our script or terminal session to proceed.
We ask: How does running commands in the background change the overall execution time?
Analyze the time complexity of running commands with and without &.
for i in {1..5}; do
sleep 2
echo "Done $i"
done
for i in {1..5}; do
sleep 2 &
echo "Started $i"
done
wait
This snippet runs 5 sleep commands sequentially first, then runs 5 sleep commands in the background and waits for all to finish.
Look at the loops and commands that repeat.
- Primary operation: Running the
sleep 2command 5 times. - How many times: 5 times in both loops.
- The difference is whether each
sleepruns one after another or all start together in the background.
Imagine increasing the number of commands (n) from 10 to 100 to 1000.
| Input Size (n) | Approx. Operations (Total Time) |
|---|---|
| 10 | About 20 seconds sequential, about 2 seconds background |
| 100 | About 200 seconds sequential, about 2 seconds background |
| 1000 | About 2000 seconds sequential, about 2 seconds background |
Pattern observation: Sequential time grows linearly with n, but background time stays roughly the same because commands run at the same time.
Time Complexity: O(n) for sequential, O(1) for background with wait
This means running commands one after another takes longer as you add more, but running them all in the background lets them finish together, keeping total time almost constant.
[X] Wrong: "Running commands in the background always makes the script finish instantly."
[OK] Correct: The script may start commands quickly, but it still needs to wait for them to finish if you want results, so total time depends on the longest command.
Understanding how background processes affect execution time shows you can manage tasks efficiently, a useful skill in scripting and automation jobs.
"What if we removed the wait command after starting background processes? How would the time complexity and script behavior change?"