I have totally never done that. If I had done that, I might have been saved by a lack of permissions. Like if I was on a mounted external drive, so not in my home directory and it didn't get too far.
Edit: What would have been much more worse, if I had done it, would have been
This is why I never use bash for scripting, and opt for Ruby instead.
You can use the `Pathname` class to treat paths as objects, which you can concatenate only valid paths with. Aside from obviously all the other sanity-saving features.
Same. Ruby isn't my preference, but I avoid bash scripting whenever possible. I see very little need to use it when practically every machine requires Python, Ruby, and other high-level dynamic languages as pre-requisite for some basic software that's included by default. I respect bash, but it's from a bygone time. Why deal with the esoteric one-character test operators, the nitpicky spacing issues, etc? Use modern, readable, testable code. So much nicer and easier to read and work with that way.
I'd love to see someone deploy a Python or Ruby-based shell. I'm sure these are available, but they're not widely used.
Bash may be worse than Ruby or Python for scripting, but it's far better as an interactive shell.
And I'm quite happy not having shell use hold back evolution of Ruby or Python, and not having drama like Ruby 1.8 -> 1.9 or Python 2.x -> 3.x affecting shell use.
Or, maybe you forget which directory you are in, and delete the wrong one that way: `rm -rf ../*` when you think you're in `/mnt/work/grkvlt/tmp` but are actually in `/mnt/work/grkvlt` at the time.
Safe shell coding tip #10451: Variables containing directories always have to end in a slash, and paths may never be built using variables and slashes.
Under some shells (eg bash) that will expand to include `..` and `.`.