[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Tilde expansion differences between 4.3 and 4.2
From: |
Chet Ramey |
Subject: |
Re: Tilde expansion differences between 4.3 and 4.2 |
Date: |
Wed, 14 Jan 2015 10:13:44 -0500 |
User-agent: |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 |
On 1/14/15 9:09 AM, Ondrej Oprala wrote:
> reproducer:
> cd ~
> mkdir MYDIR
> cd MYDIR
> echo "${PWD/#$HOME/~}"
>
> Result of echo in 4.3:
> /home/<user>/MYDIR
>
> Result of echo in 4.2:
> ~/MYDIR
>
> Is tilde expansion in 4.3 supposed to happen?
Yes. It's a Posix change.
Look at http://austingroupbugs.net/view.php?id=221, which reads, in part:
"For the four varieties of parameter expansion that provide for
substring processing (see [xref to 2.6.2 Parameter Expansion]),
within the string of characters from an enclosed "${" to the
matching '}', the double-quotes within which the expansion occurs
shall have no effect on the handling of any special characters."
which basically means that the outer quotes don't mean the stuff inside
the braces is quoted. This was part of a cleanup of the semantics of
quotes surrounding a parameter expansion and how those quotes affect
character handling inside the expansion.
Look at threads including
http://lists.gnu.org/archive/html/bug-bash/2014-10/msg00197.html
http://lists.gnu.org/archive/html/bug-bash/2014-03/msg00038.html
http://lists.gnu.org/archive/html/bug-bash/2014-04/msg00077.html
and go back from there.
--
``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/