I have a few shell scripts using `getopts` that have a `-!` flag to make it go; the default is dry-run.
And it's pretty nice. The downside is if you get used to that behavior in things that don't have it the consequences can be bad. (Like the common `alias rm='rm -i'`. No, that's just a trap; don't do it.)