我有一个使用以下命令运行的自动测试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 会挂起而没有提示。