On 5/3/17 6:40 PM, Nikolay Aleksandrovich Pavlov (ZyX) wrote:

> Bash Version: 4.3
> Patch Level: 48
> Release Status: release
> 
> Description:
>       If $PATH in bash contains ~ (e.g. `PATH='~/bin'`) it is incorrectly 
> treated 
>       as if $HOME is present.

Yes. This is one of the oldest features in bash; it was present in the
first version of bash that performed tilde expansion. This was almost 30
years ago, but I believe part of the rationale was that the C library on
the GNU system would perform the same tilde expansion wherever it needed
to inspect $PATH (e.g., execlp and execvp).  For whatever reason, glibc
did not end up moving that feature forward.

I agree that it's not a great idea to have tildes in $PATH, but I doubt
this is a real problem.

Your contrived example demonstrates that while negative effects are
theoretically possible, you have to work pretty hard to make them happen.
While it's come up a couple of times in 28 years, it's not been a huge
problem.

Changing it isn't really a high priority right now, but if I were to do
it, I would probably add an option to avoid breaking backwards compatibility.

Chet

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/

Reply via email to