是否可以通过定位标题从命令行关闭终端选项卡?

是否可以通过定位标题从命令行关闭终端选项卡?

对于我的开发环境,我使用脚本来运行其他命令,其中包括启动运行别名命令的终端选项卡:

gnome-terminal --tab-with-profile="custom" --title="imageproc" -- bash -ic "imgp ss"

如果我切换到其他项目,我希望能够定位并关闭选项卡,但在谷歌搜索和浏览几个手册页后,我却一无所获。

答案1

这并不是我想要的,但是找到了一种迂回的方法来完成我需要的,希望这对其他人有所帮助:

在我的例子中,终端选项卡是一个节点服务器,它在运行时输出日志,因此它在进程运行时保持打开状态。至少在 Ubuntu 上,你可以根据终端配置文件首选项将窗口设置为自行关闭:

偏好设置窗口截图

这意味着我只需终止进程,选项卡就会关闭。为了实现这一点,我添加了一个命令,将其添加到切换项目时使用的脚本中:

ps -aux | grep "commandnamehere" | grep -v "grep" | awk '{print $2}' | xargs kill

或者,您可以终止占用特定端口的进程,这在我的例子中也有效:

kill $(lsof -t -i:7777)

编辑:

如果您只想像我一样在其他脚本之前终止进程,您可能还需要一个检查是否有要终止的进程的函数:

killpid() {
     PID=`ps -aux | grep "commandnamehere" | grep -v "grep" | awk '{print $2}'`;
     if [ ! -z "$PID" ]
     then
         echo "killing commandnamehere - $PID";
         echo $PID | xargs kill;
     fi
 }

相关内容