Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > gnu.bash.bug > #15370 > unrolled thread
| Started by | Roland Illig <roland.illig@gmx.de> |
|---|---|
| First post | 2019-09-15 23:17 +0200 |
| Last post | 2019-09-15 23:17 +0200 |
| Articles | 1 — 1 participant |
Back to article view | Back to gnu.bash.bug
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
Re: Wrong explanation of getopts Roland Illig <roland.illig@gmx.de> - 2019-09-15 23:17 +0200
| From | Roland Illig <roland.illig@gmx.de> |
|---|---|
| Date | 2019-09-15 23:17 +0200 |
| Subject | Re: Wrong explanation of getopts |
| Message-ID | <mailman.306.1568582232.2190.bug-bash@gnu.org> |
Am 15.09.2019 um 22:38 schrieb Eduardo Bustamante:
> On Sun, Sep 15, 2019 at 12:58 PM Roland Illig <roland.illig@gmx.de> wrote:
>>
>> The help text of getopts says:
>>
>>> Getopts normally parses the positional parameters ($0 - $9), but if
>>> more arguments are given, they are parsed instead.
> (...)
>> The "instead" in "they are parsed instead" is totally wrong. $1 to $9
>> are always parsed, no matter if there are more than 10 positional
>> parameters or not.
>
> It's not wrong.
Ok, maybe not strictly wrong, but still misleading. In my first try to
read the documentation, and I really did read with good intentions, I
thought the "more" would refer to the "more than $9", and with that
interpretation in mind, the "instead" is clearly wrong.
>> $ getopts
>> getopts: usage: getopts optstring name [arg]
>
> It's referring to the fact that you can explicitly pass a set of
> parameters to `getopts' (i.e. the `[arg]' part), instead of it using
> the script's positional parameters (i.e. $@).
$@ also doesn't include $0. What does $0 have to do with getopts?
In my opinion, the help should read like this:
getopts: getopts optstring name [args]
Parse option arguments.
...
If ARGS are given, they are parsed. Otherwise the usual positional
parameters $@ are parsed instead.
The changes are that "arg" is renamed to "args", and it is referred to
unambiguously by saying ARGS in the main text. I also left out the word
"more" since it was the main source of my confusion.
In other parts of the help, repeated arguments are written as [ARG ...]
instead of [ARGS]. For consistency, the same pattern could be used here
as well. In that case, the text should be "If ARGs are given, ...".
Roland
Back to top | Article view | gnu.bash.bug
csiph-web