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/

Reply via email to