24 lines
1.2 KiB
Text
24 lines
1.2 KiB
Text
|
Getopt(1) is a program to help shell scripts parse command-line
|
||
|
parameters. It is for example included in the util-linux distribution
|
||
|
(versions up to 2.7.1) for Linux. But, there were some problems
|
||
|
with that getopt(1) implementation, as listed in the 'BUGS' section
|
||
|
of its man-page:
|
||
|
* Whatever getopt(3) has.
|
||
|
* Arguments containing white space or imbedded shell metacharacters
|
||
|
generally will not survive intact; this looks easy to fix but
|
||
|
isn't.
|
||
|
* The error message for an invalid option is identified as
|
||
|
coming from getopt rather than from the shell procedure
|
||
|
containing the invocation of getopt; this again is hard to
|
||
|
fix.
|
||
|
* The precise best way to use the set command to set the
|
||
|
arguments without disrupting the value(s) of shell options
|
||
|
varies from one shell version to another.
|
||
|
Additionally, the example in the manual-page does not run correctly
|
||
|
(at least not with any bash shell I have tried).
|
||
|
|
||
|
This implementation of getopt(1) solves some of these problems,
|
||
|
while still staying (for all practical purposes) completely compatible
|
||
|
with other getopt(1) implementations. It has replaced the old
|
||
|
util-linux version, but it should be useful for other Unixes too.
|