Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 Oct 1999 12:43:37 -0700 (PDT)
From:      patl@phoenix.volant.org
To:        Matthew Hunt <mph@astro.caltech.edu>
Cc:        Arcady Genkin <a.genkin@utoronto.ca>, freebsd-questions@FreeBSD.ORG
Subject:   Re: Bash prompt (/usr/home/username instead of ~/)
Message-ID:  <ML-3.4.940362217.4086.patl@asimov>
In-Reply-To: <19991019122756.A34003@wopr.caltech.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On 19-Oct-99 at 12:28, Matthew Hunt (mph@astro.caltech.edu) wrote:
> On Tue, Oct 19, 1999 at 11:51:20AM -0700, patl@phoenix.volant.org wrote:
> 
> > As I recall, the goal was to get the initial path components to show
> > up as '~' when appropriate in the prompt; and the 'problem' was that
> > it didn't seem to take effect until after the first 'cd' after setting
> > PS1.  The suggestion was to put a 'cd' after the 'PS1=...' in the
> > .bashrc. 
> > My point is that you might not be in your home directory when bash is
> > started; and that changing the current directory is likely to be an 
> > undesired side-effect.  Using 'cd .' should have no side-effects beyond
> > triggering the change in the prompt.
> 
> But for me, "cd ." doesn't make the prompt work!  I assume that I
> observe the same problem that the original author does:
> 
> freefall:/d/users/mph$ pwd
> /d/users/mph
> freefall:~$ echo $HOME
> /home/mph
> freefall:/d/users/mph$ cd .
> freefall:/d/users/mph$ cd
> freefall:~$ pwd
> /home/mph
> 
> The problem is that bash's initial idea of where you are (from getcwd(3)
> when it starts?) doesn't match $HOME.  When you "cd" (not "cd ."), it
> changes directory to $HOME, and becomes happy.

Hmm.  In that case, you'll probably have to wrap the cd in a test to
avoid unexpected current-directory changes when bash is executed from
some other directory.  Perhaps something like:

	if [ "$(bin/pwd)" = "$HOME" ] ; then builtin cd ; fi

Of course, this won't properly fix cases where you are in a subdir
of your home directory. So maybe you'd prefer something like:

	builtin cd $(perl -e '$_=$ENV{PWD};s:^$ENV{HOME}:~:;print')

(Note: These are both untested off-the-top-of-my-head code fragments.)



-Pat


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ML-3.4.940362217.4086.patl>