我正在编写一个脚本,它将从命令行获取输入与启动其他程序结合起来。因此,脚本将如下所示:
...
launch program
Read input from the terminal
...
问题是,当我启动该程序时(即使我在后台启动它),终端就会失去焦点并且启动的程序变为活动状态。
如何使用默认的 Ubuntu 命令启动一个程序并保持焦点在终端上?
谢谢
答案1
如果你知道终端的标题,你可以在打开程序后使用以下命令切换回该终端:wmctrl
命令(如果窗口立即打开并且您不需要该命令,则新程序看起来甚至不在前台sleep
):
wmctrl -a <WIN-TITLE>
<WIN-TITLE>
不必是完整标题,例如,如果标题是TESTING
,TEST
就可以。
根据打开程序所需的时间,您可能需要使用命令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"