Shell Scripting / Bash Tricks
Stop your loop variables from stomping all over your global scope
đź§© The Challenge
Everyone thinks writing a quick for-loop in a bash script is safe until you realize you’ve accidentally overwritten a global variable with the same name. I once spent three hours debugging a production script that kept resetting a file path variable because my loop used the same name as my config loader.
đź’ˇ The Fix
Bash functions allow you to declare variables as local, which keeps them contained within that specific scope so they can’t bleed out into the rest of your environment. You should get into the habit of marking your loop variables local, especially in larger scripts.
process_data() {
local i
for i in {1..5}; do
echo "Current index: $i"
done
}
process_data
⚙️ Why It Works
Adding the local keyword ensures that variable name only exists within the scope of the function you’re running. It basically builds a fence around your code so your loops don’t trash the variables you actually need later.
🚀 Pro-Tip: Always verify your variables with local at the start of every function—even the tiny ones.
Linux Tips & Tricks | © ngelinux.com | 8/1/2026
