Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #11879
| Path | csiph.com!optima2.xanadu-bbs.net!xanadu-bbs.net!news.glorb.com!usenet.stanford.edu!not-for-mail |
|---|---|
| From | Chet Ramey <chet.ramey@case.edu> |
| Newsgroups | gnu.bash.bug |
| Subject | Re: Possible bug in getopts when required argument is not supplied |
| Date | Fri, 13 Nov 2015 15:19:49 -0500 |
| Organization | ITS, Case Western Reserve University |
| Lines | 36 |
| Approved | bug-bash@gnu.org |
| Message-ID | <mailman.2288.1447446011.7904.bug-bash@gnu.org> (permalink) |
| References | <535058272b68c9459882c6bd4565b428.squirrel@webmail.oplink.net> |
| Reply-To | chet.ramey@case.edu |
| NNTP-Posting-Host | lists.gnu.org |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=utf-8 |
| Content-Transfer-Encoding | 7bit |
| X-Trace | usenet.stanford.edu 1447446011 19060 208.118.235.17 (13 Nov 2015 20:20:11 GMT) |
| X-Complaints-To | action@cs.stanford.edu |
| Cc | chet.ramey@case.edu |
| To | Griff Miller II <griff.miller@oplink.net>, bug-bash@gnu.org |
| Envelope-to | bug-bash@gnu.org |
| User-Agent | Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
| In-Reply-To | <535058272b68c9459882c6bd4565b428.squirrel@webmail.oplink.net> |
| X-Mirapoint-Virus-RAPID-Raw | score=unknown(0), refid=str=0001.0A020206.564645E7.01C1,ss=1,re=0.000,fgs=0, ip=173.191.69.108, so=2015-08-12 04:07:17, dmn=2011-05-27 18:58:46 |
| X-Mirapoint-Loop-Id | d1efeb4a4bf44b4ca35d2ca5ff201a30 |
| X-Junkmail-Whitelist | YES (by domain whitelist at mpv2-2015.case.edu) |
| X-Mirapoint-Virus-RAPID-Raw | score=unknown(0), refid=str=0001.0A020204.564645E7.0302,ss=1,re=0.000,fgs=0, ip=173.191.69.108, so=2015-08-12 04:07:17, dmn=2011-05-27 18:58:46 |
| X-Mirapoint-Loop-Id | 32db463bc012798a8e3b9e36268ae2c2 |
| X-detected-operating-system | by eggs.gnu.org: GNU/Linux 2.4.x-2.6.x [generic] [fuzzy] |
| X-Received-From | 129.22.103.227 |
| X-BeenThere | bug-bash@gnu.org |
| X-Mailman-Version | 2.1.14 |
| Precedence | list |
| List-Id | Bug reports for the GNU Bourne Again SHell <bug-bash.gnu.org> |
| List-Unsubscribe | <https://lists.gnu.org/mailman/options/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=unsubscribe> |
| List-Archive | <http://lists.gnu.org/archive/html/bug-bash> |
| List-Post | <mailto:bug-bash@gnu.org> |
| List-Help | <mailto:bug-bash-request@gnu.org?subject=help> |
| List-Subscribe | <https://lists.gnu.org/mailman/listinfo/bug-bash>, <mailto:bug-bash-request@gnu.org?subject=subscribe> |
| Xref | csiph.com gnu.bash.bug:11879 |
Show key headers only | View raw
On 11/13/15 11:13 AM, Griff Miller II wrote: > Note that in the last run, getopts does not detect that nothing was passed > via -a, even though -a requires it. Instead, it thinks the next switch > (-b) is the value of -a. Perhaps this was a conscious decision, so that > values starting with '-' can be passed, but it's a more of a surprise to > the developer than discovering that the user can't do e.g. ./myscript -a > -my_a_val . Can this bug, if it's deemed a bug, be fixed, else the > manpage updated in the getopts section to make it clear what is going on? It is not a bug. An option argument is the next command line argument following the option, regardless of whether or not it begins with a hyphen. In fact, there are very few restrictions on the characters that an option argument can contain, period. > If there is a requirement that the user be able to have optargs that start > with '-', maybe not allow OPTARG be one of the options in the first > argument to getopts ($opts in the above script)? This sounds needlessly restrictive. Consider a shell script that is a front end to some other command or set of commands. It takes its own set of options, as well as an additional option (-W, say) that allows users to specify options that are passed directly to the invoked program. (This is kind of like what gcc does with its -W option, but simpler). Artificially restricting the option arguments to -W would reduce the general usefulness of getopts. In your case, it's probably enough to check $OPTARG and throw an error if it begins with a hyphen. Chet -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, ITS, CWRU chet@case.edu http://cnswww.cns.cwru.edu/~chet/
Back to gnu.bash.bug | Previous | Next | Find similar | Unroll thread
Re: Possible bug in getopts when required argument is not supplied Chet Ramey <chet.ramey@case.edu> - 2015-11-13 15:19 -0500
csiph-web