任务完成后保持 xterm 打开

任务完成后保持 xterm 打开

我有一个使用以下命令运行的自动测试xterm -e

xterm -e  RunMyTests

在测试运行结束时,它会将结果摘要和一些统计数据打印到标准输出。

我希望 xterm 保持打开和可见,以便我可以检查结果。
(如果它处于非活动状态,那也没关系,只要我能看到它)

我知道我可以手动启动 xterm,然后在那里运行测试。
或者我可以将测试输出重定向到稍后要检查的文件。
或者我可以在当前 xterm 中运行测试,而不是生成新窗口。
所有这些都可以工作,但并不理想。

有没有办法让 xterm 窗口在完成其工作后保持打开状态?

答案1

问题在于,测试完成后,xterm 中没有运行任何 shell 可供其返回。

尝试这个。

xterm -e "echo hi;bash"

或者

xterm -e "echo hi;read"

答案2

来自 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.

标准命令:xterm -hold "echo I'm a boy"

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

答案3

在您通常打开一个终端,然后获取环境脚本,然后继续执行其他命令的情况下,我发现在只有 lxterminal 可用的情况下,以下操作可以工作。

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

例如:

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

这将创建一个执行 bash 的终端窗口,该窗口会获取一个环境脚本来运行 bash,而不会覆盖源环境。最后,它会让终端与源环境一起打开,这回答了这个问题。如果删除第一个-e bash,lxterminal 会挂起而没有提示。

相关内容