启动程序并保持对终端的关注

启动程序并保持对终端的关注

我正在编写一个脚本,它将从命令行获取输入与启动其他程序结合起来。因此,脚本将如下所示:

...
launch program
Read input from the terminal
...

问题是,当我启动该程序时(即使我在后台启动它),终端就会失去焦点并且启动的程序变为活动状态。

如何使用默认的 Ubuntu 命令启动一个程序并保持焦点在终端上?

谢谢

答案1

如果你知道终端的标题,你可以在打开程序后使用以下命令切换回该终端:wmctrl命令(如果窗口立即打开并且您不需要该命令,则新程序看起来甚至不在前台sleep):

wmctrl -a <WIN-TITLE>

<WIN-TITLE>不必是完整标题,例如,如果标题是TESTINGTEST就可以。

根据打开程序所需的时间,您可能需要使用命令sleep来延迟切换回终端。您可以像这样使用它:sleep <SECONDS>s

要在脚本中设置终端的标题,请使用:

NAME="NEW_TITLE"; echo -en "\033]0;$NAME\a"

这个答案了解更多信息。

例如,这里有一个在后台打开程序的小脚本:

NAME="Opening program..."; echo -en "\033]0;$NAME\a"
$1&
sleep 0.75s
wmctrl -a "Opening program"

相关内容