Stop letting your bash scripts chew through arguments you didn’t mean to pass
Shell Scripting / Bash Tricks
Stop letting your bash scripts chew through arguments you didn’t mean to pass
🧩 The Challenge
Dealing with a script that keeps eating your flags or misinterpreting filenames because you didn’t put a double dash in the right place is a nightmare. I’ve wasted more time than I care to admit debugging scripts that treat a filename starting with a hyphen as a command-line argument.
💡 The Fix
Use a double dash to tell your shell and your utilities that the command options are finished and everything following should be treated as literal input. It’s the only way to stop your scripts from freaking out when a file happens to be named -f or –help.
command -- "${variable_with_potentially_weird_name}"
⚙️ Why It Works
Adding the double dash forces the parser to stop looking for flags in the remaining arguments. It’s a small detail that saves you from the disaster of having your script try to interpret a rogue filename as an instruction.
🚀 Pro-Tip: Always double-quote your variables too, otherwise the shell will still try to expand them into a mess before the command even sees the double dash.
Linux Tips & Tricks | © ngelinux.com | 7/16/2026
