Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/bin/sh



On Fri, Mar 16, 2018 at 17:11:09 +0700, Robert Elz wrote:

>     Date:        Thu, 15 Mar 2018 01:20:43 +0000
>     From:        "Valeriy E. Ushakov" <uwe%netbsd.org@localhost>
>     Message-ID:  <20180315012043.C3D92FB40%cvs.NetBSD.org@localhost>
> 
>   | The manual is still rather inconsistent e.g. when referring to
>   | parameters where it randomly uses both $0 and 0 or $@ and @ - but I'm
>   | not shaving that yak at least for now.
> 
> Please be careful if you get cold, and decide you need the wool.
> 
> I have just done a brief scan (of the @ uses at least) and I think
> at least most of them are correct as they are (at least, I did not
> see any that are not - but I did not look carefully at every one.)
> 
> The man page uses just "@" when it is referring to the name of
> the special parameter, and "$@" when it is referring to the results
> of expanding that special paramater, so it is correct to say
> 
> 	$@ expands to ...
> but would not be to say
> 	@ expands to
> as @ doesn't expand to anything, it is just a character.
> 
> Similarly,
> 	the special parameter @ gives a list of ...
> (or "expands to ...") is correct,. but
> 	the special parameter $@ gives ...
> would not be, as $@ is not a special parameter (or
> not normally.)
> 
> $0 is also the expansion of the special parameter 0,
> it would have the same usage rules (though I did not
> look for that one - there are far more 0's in the man page
> than @'s!)

Yes, I understand that.  Though there are still some problematic (at
least to my eye) wording in that area.  E.g.

    If there are no positional parameters, the expansion of @
    generates zero arguments, even when @ is double-quoted.  [...]
    then "$@" expands to [...]

where

    when @ is double-quoted

is, pedantically, wrong.  It's not @ that is double-quoted, it's $@.


Or:

    When a shell function is executed, all of the shell positional
    parameters (except $0, which remains unchanged) are set to [...]

where 0 is a special parameter, not a positional parameter, to begin
with, and where the principle you refer to in your mail requires
"except 0", without the $ sign.


Also some of them are in .Dq and some not, so

    A sub-shell retains the same value of $ as its parent.

but

    the value of the special parameter ``!''

Now, obviously, the exclamation mark without .Dq would be very
confusing inside a sentence, but may be it would be a good idea to
mark up all of them in this (or some other) way consistently.

I also try to add the form with the dollar sign in a comment for the
occurences I stumble upon just to make them more searchable in the
source at least (cf. "far more zeroes" :).

-uwe


Home | Main Index | Thread Index | Old Index