On 10/25/12 9:43 AM, David Korn wrote:
> cc: [email protected]
> Subject: Re: [ast-users] [ksh93] Should ~$user be tilde expanded?
> --------
>
>
>> I think bash behavior is correct according to
>> http://pubs.opengroup.org/onlinepubs/009695399/utilities/xcu_chap02.html#tag_02_
>> 06which
>> says tilde expansion should be done before parameter expansion.
>>
>
> Where do you see that? In section 2.6, it says
>
> "Tilde expansion (see Tilde Expansion), parameter expansion (see Parameter
> Expansion), command substitution (see Command Substitution), and arithmetic
> expansion (see Arithmetic Expansion) shall be performed, beginning to end.
> See item 5 in Token Recognition.
>
> which implies that these should be simultaneously from beginning to end.
But ksh isn't doing that. It's taking the $u and saying `this tilde prefix
is a potential login name' and then applying expansions to that potential
login name. You have to apply some ordering here, and ksh chooses a
different one than bash. The standard doesn't make it explicit about what,
if any, expansions are performed on the login name, so both behaviors may
in fact be conformant.
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU [email protected] http://cnswww.cns.cwru.edu/~chet/