![是否可以通过定位标题从命令行关闭终端选项卡?](https://linux22.com/image/1182797/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E9%80%9A%E8%BF%87%E5%AE%9A%E4%BD%8D%E6%A0%87%E9%A2%98%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E5%85%B3%E9%97%AD%E7%BB%88%E7%AB%AF%E9%80%89%E9%A1%B9%E5%8D%A1%EF%BC%9F.png)
对于我的开发环境,我使用脚本来运行其他命令,其中包括启动运行别名命令的终端选项卡:
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
}