POSIX recommends these conventions for command line arguments.
getopt (see Getopt) and
argp_parse (see Argp) make
it easy to implement them.
isalnum; see Classification of Characters).
ldcommand requires an argument—an output file name.
The implementations of
argp_parse in the GNU C Library
normally make it appear as if all the option arguments were
specified before all the non-option arguments for the purposes of
parsing, even if the user of your program intermixed option and
non-option arguments. They do this by reordering the elements of the
argv array. This behavior is nonstandard; if you want to suppress
it, define the
_POSIX_OPTION_ORDER environment variable.
See Standard Environment.
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.
To specify an argument for a long option, write --name=value. This syntax enables a long option to accept an argument that is itself optional.
Eventually, GNU systems will provide completion for long option names in the shell.