Should command line options in POSIX-style operating systems be underscore style?

Viewed 7497

Should the name of command line options for a program in a POSIX-style operating system be underscore-style, like

--cure_world_hunger

or maybe some other style?

--cureworldhunger
--cure-world-hunger
--cureWorldHunger

What's most common? What's better style? What's more Bash-friendly (if such a thing exist)?

3 Answers

Underscore is not a good idea, sometimes it gets "eaten" by a terminal border and thus look like a space.

The easiest to read, and most standard way is to use a dash:

--cure-world-hunger

Always hyphens! Let's get a reputed reference: the Gnu style guide:

GNU adds long options to these conventions. Long options consist of ā€˜--’ followed by a name made of alphanumeric characters and dashes. Option names are typically one to three words long, with hyphens to separate words. Users can abbreviate the option names as long as the abbreviations are unique.

Another problem with underscores is that if the documentation is linked in a HTML document, the link underline will hide the underscore and will confuse the user.

The double dash prefix is a GNU convention I believe. Check out getopt_long(3) man page on the GNU/Linux Operating System.

Related