14

I have an automated test that I run with the xterm -e command:

xterm -e  RunMyTests

At the end of the test-run, it prints out a summary of the results and some statistics to stdout.

I'd like to have the xterm remain open and visible so I can check the results.
(if its inactive, that's fine, so long as I can see it)

I know I could manually start the xterm then run the tests there.
Or I could redirect the test-output to a file to be examined later.
Or I could run the tests in the current xterm, instead of spawning a new window.
All of these could work, but are not ideal.

Is there a way to get an xterm window to stay open after its completed its work?

abelenky
  • 993

3 Answers3

39

From xterm(1):

   -hold   Turn on the hold resource, i.e.,  xterm  will  not  immediately
           destroy  its  window when the shell command completes.  It will
           wait until you use the window manager to destroy/kill the  win‐
           dow,  or  if you use the menu entries that send a signal, e.g.,
           HUP or KILL.

Standard command: xterm -hold "echo I'm a boy"

Gambas Code: exec["xterm", "-hold", "-e", "ps aux"

Jon
  • 9,479
  • 40
  • 99
  • 131
AndresVia
  • 491
  • 1
  • 4
  • 4
13

The problem is that there is no shell running in the xterm for it to go back to when the tests are done.

Try this.

xterm -e "echo hi;bash"

Or

xterm -e "echo hi;read"
user606723
  • 1,568
1

In the case were you would normally open a terminal and then source an environment script and then continue with other commands, I found the following to work where an lxterminal is all that is available.

lxterminal -e bash -c "< path to env script \> bash --noprofile"

For instance:

lxterminal -e bash -c "/home/pi/linuxcnc-dev/scripts/rip-environment bash --noprofile"

This creates a terminal window executing bash that sources an environment script to run bash that does not overwrite the sourced environment. In the end, it's leaving the terminal open with the sourced environment, which answers the question. If you remove the first -e bash, the lxterminal hangs with no prompt.

zx485
  • 2,337
ztalbot
  • 71