Contents

Getopts was first introduced in 1986 in the Bourne shell shipped with Unix SVR3.[1] Earlier versions of the Bourne shell did not have getopts. (Note: getopts is not the same as the C library function getopt.)

In spring 2004 (Solaris 10 beta development), the libc implementation for getopt() was enhanced to support long options. As a result, this new feature was also available in the built-in command getopts of the Bourne Shell.

The GNU enhanced version of getopt supports the extra features of getopts plus more advanced features. Most significantly, the GNU enhanced version of getopt supports long option names (e.g. --help) and the options do not have to appear before all the operands (e.g. command operand1 operand2 -a operand3 -b is permitted by the GNU enhanced version of getopt but does not work with getopts).

The GNU enhanced version of getopt is an external command line program (unlike getopts which is a built-in shell command).