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 c...@case.edu http://cnswww.cns.cwru.edu/~chet/