shell programming challenge
Conrad J. Sabatier
conrads at cox.net
Thu Nov 25 15:30:33 PST 2004
On Thu, 25 Nov 2004 11:59:47 -0600, "Conrad J. Sabatier"
<conrads at cox.net> wrote:
> On Thu, 2004-11-25 at 10:26 -0700, Don Wilde wrote:
> > Hey, folks -
> >
> > I need to find a way to kick off an xterm running BASH and then
> > execute a program within that xterm, but NOT close the new xterm
> > after the program finishes. Another desirable thing would be to also
> > be able to 'source in' a file of shell environment that would affect
> > the new window
> > and shell.
> >
> > Here's what I've found out so far:
> >
> > Assume we have an executable test file 'ticktock':
> >
> > #!/bin/sh
> > for n in 1 2 3 4 5 6 7 8
> > do
> > echo "$n MYVAR=$MYVAR"
> > sleep 1
> > echo -n "continue? "
> > read reply
> > done
> > # end of ticktock
> >
> > I want to do something like:
> >
> > xterm -e bash <(echo ./ticktock) &
> >
> > When I do this, the program works & interacts, but the xterm dies
> > upon completion of ticktock or INT. I also do not seem to be able to
> > use the --rcfile switch as a bash option, although I can add
> > KEY=VALUE pairs before the xterm launch.
> >
> > Ideas? Please respond to me directly.
>
> man xterm. There *is* an option to keep the term open after executing
> a program.
OK, I think I've found what you're looking for:
xterm -e "/usr/local/bin/bash --rcfile bash_commands -i"
Substitute your program's startup script for "bash_commands" in the
above. Using the "-i" switch to bash forces interactive mode, so when
the script exits, you'll be returned to the shell prompt in the xterm.
As it turns out, xterm's "-hold" switch is wholly unnecessary here.
Note that the "--rcfile" switch, being a "double-hyphened" option, must
precede the later "-i" switch in order to be recognized.
HTH
--
Conrad J. Sabatier <conrads at cox.net> -- "In Unix veritas"
More information about the freebsd-questions
mailing list