Re: Sharing bash history [was Re: Horrible X11 Problems on OS X (iBook)]
Re: Sharing bash history [was Re: Horrible X11 Problems on OS X (iBook)]
- Subject: Re: Sharing bash history [was Re: Horrible X11 Problems on OS X (iBook)]
- From: Viv Kendon <email@hidden>
- Date: Wed, 22 Dec 2004 22:57:04 +0000 (GMT)
On Wed, 22 Dec 2004, Thomas 'Tom' R. Treadway III wrote:
On Dec 22, 2004, at 1:34 PM, robert delius royar wrote:
Wed, 22 Dec 2004 (21:08 -0000 UTC) Viv Kendon wrote:
On Wed, 22 Dec 2004, Don MacQueen wrote:
At 3:41 PM +0000 12/22/04, Noah Slater wrote:
I was having loads of problems getting X11 to work as well. It all
came down to configuration and startup scripts.
If your xterm is using a default Bash shell and so is Terminal.app
they will of course share the same history as this information is
located in ~/.bash_history
Are you sure?? If you open two separate shells in Terminal.app, do they
share history?
Not exactly...when you start an interactive bash shell in xterm or
Terminal or whatever, it reads in the .bash_history file and continues to
add to the copy it keeps in memory. When the shell exits it writes the
file back to disk, overwriting whatever was there. So what you have in
your history file depends on which shell you last quit from...
As one who usually has at least half a dozen xterms around at any one
time, plus a couple of Terminal windows, I do
occasionally find this bizzare or annoying, but I can't think of a better
way to do it...
You should be able to add some tests to your startup and set your HISTFILE
value based on those values. In tcsh I set up two XTerms this way, one
plain, and one named Darwinports. The Darwinports version sets the path
differently from the plain one. It also saves its own history file and
directory stack. I could just use a number the increments up to ten I
suppose (.tcsh_historyXX for XX = 1 to 10). That would require some
looking at my environment, perhaps setting a variable to "1" if it does not
exist or a tmp file does not exist and incrementing it one if it does exist
and is less than 10 (or whatever). I suppose you could then place
export THISXTERM=0
/usr/X11R6/bin/xterm -title "XTerm $((THISXTERM+1))" in your .xinitrc to
"seed" the process, and add tests to .bashrc to handle the increments (on
the theory that .xinitrc gets called but once).
in .bash_profile use
export HISTFILE=$HOME/.bash_history.$(tty|sed 's|/dev/tty||')
which will used a history file based on the terminal name.
Actually, I usually _don't_ want all my history files to be
separate! Usually it does what I want by overwriting...then
sometimes...that's what I meant by not knowing a better way
to design it.
-- Viv
------------------------------------------------
Dr Viv Kendon email@hidden
Quantum Information tel: 0113 343 3897
Physics & Astronomy University of Leeds
_______________________________________________
Do not post admin requests to the list. They will be ignored.
X11-users mailing list (email@hidden)
This email sent to email@hidden