从shell获取终端的X11窗口id

从shell获取终端的X11窗口id,shell,x11,Shell,X11,如何获取运行shell脚本的终端的窗口ID 背景: 我需要写一个脚本,根据它运行在哪个虚拟桌面上来做一些事情。要获取虚拟桌面(不是当前桌面,我可以在脚本运行时更改它),我需要脚本运行的终端的窗口ID。如果脚本不是从终端运行的,它应该会出错。我对X11知之甚少,但在终端中运行env命令时,我发现了一个环境变量WINDOWID,它在同一终端的不同选项卡中显示相同的数字,但在另一终端中显示不同的数字。也许这就是你需要的 它看起来确实是一个Xterm东西(可能是模仿Xterm行为的任何终端)。Xterm

如何获取运行shell脚本的终端的窗口ID

背景:
我需要写一个脚本,根据它运行在哪个虚拟桌面上来做一些事情。要获取虚拟桌面(不是当前桌面,我可以在脚本运行时更改它),我需要脚本运行的终端的窗口ID。如果脚本不是从终端运行的,它应该会出错。

我对X11知之甚少,但在终端中运行
env
命令时,我发现了一个环境变量
WINDOWID
,它在同一终端的不同选项卡中显示相同的数字,但在另一终端中显示不同的数字。也许这就是你需要的

它看起来确实是一个
Xterm
东西(可能是模仿
Xterm
行为的任何终端)。
Xterm(1)
手册页只说:

环境

   Xterm sets several environment variables:
   ...
   WINDOWID
        is set to the X window id number of the xterm window.
其他一些可能相关的问题和答案:


我对
X11
知之甚少,但在我的终端中运行
env
时,我发现一个环境变量
WINDOWID
,它在同一终端的不同选项卡中显示相同的数字,但在另一终端中显示不同的数字。也许这就是您需要的?另外:@Evert这是一个答案(您关于环境变量的第一个注释),您能否将其移动作为一个答案。然后我将给您一个大的记号。在xterm和rxvt中工作时,它在terminator中不可用。