![如何通过在其中运行的进程 id 找到窗口(gnome-terminal)?](https://linux22.com/image/1071336/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%E5%9C%A8%E5%85%B6%E4%B8%AD%E8%BF%90%E8%A1%8C%E7%9A%84%E8%BF%9B%E7%A8%8B%20id%20%E6%89%BE%E5%88%B0%E7%AA%97%E5%8F%A3%EF%BC%88gnome-terminal%EF%BC%89%EF%BC%9F.png)
gnome-terminal 可以打开多个窗口,并且一个窗口中可能有多个选项卡。
我想激活一个 gnome-terminal 窗口,该窗口的一个选项卡中运行着一个 bash,因为该 bash 的 CWD 会阻止我的便携式磁盘正确弹出。
我通过 lsof 发现 bash pid 是 25938。
在我的示例中,我发现有 5 个窗口,8 个选项卡。问题是如何确定 25938 在哪个窗口中,当然是通过 cmd。
$ echo $$
24674
$ ps --ppid $(pgrep gnome-terminal)
PID TTY TIME CMD
6080 pts/0 00:00:00 bash
6742 pts/1 00:00:00 bash
20340 pts/5 00:00:00 bash
23354 pts/7 00:00:00 bash
24674 pts/8 00:00:00 bash
25938 pts/9 00:00:00 bash
30028 pts/12 00:00:00 bash
30492 pts/13 00:00:00 bash
$ wmctrl -lp | grep "$(pidof gnome-terminal-server)"
0x02800006 0 6070 bill me@bill: ~/m
0x0281016b 0 6070 bill me@bill: ~/c
0x02824e87 0 6070 bill me@bill: /c
0x02827a5d 0 6070 bill me@bill: ~/b
0x0282bc75 0 6070 bill me@bill: ~/a