On 3/12/12 12:22 AM, Yongzhi Pan wrote:
> Tested in GNU bash, version 3.00.16(1)-release and 4.1.2(1)-release.
>
> Upon login, home dir is displayed as tilde in PS1:
> pan@BJ-APN-2 ~$ echo $PS1
> \[\033[35m\]\u@\h \w$ \[\033[0m\]
> pan@BJ-APN-2 ~$ pwd
> /export/home/pan/
>
> After a cd command, which change directory to $HOME (not changed at all),
> it is displayed as the complete path:
> pan@BJ-APN-2 ~$ cd
> pan@BJ-APN-2 /export/home/pan$
Strictly speaking, the tilde prefix only extends up to the first slash.
Pathname canonicalization cuts off the final slash of the directory
name, so the directory target of `cd' (and therefore $PWD) won't match
$HOME, and you won't get the abbreviation. I'm surprised it matches the
first time, but the pathname you get from the environment probably hasn't
been canonicalized.
Chet
>
> The reason is that my home in passwd has a trailing slash:
> pan@BJ-APN-2 /export/home/pan$ grep ^$USER: /etc/passwd
> pan:x:896:1::/export/home/pan/:/bin/bash
This isn't a good idea in any case.
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/