在尝试回答this question时,我正在试验gvim --echo-wid
,我认为这会与xdotool
一起使用。
也许只是脑筋急促但我有一段时间将gvim --echo-wid
的输出变为bash变量而不会阻挡。
X=`gvim --echo-wid`
不起作用,反引号捕获似乎阻止了gvim的分叉和分离。 X
仅在gvim终止后设置。
X=`gvim --echo-wid &`; echo "got: $X"
同样的故事。
mkfifo $F
(gvim --echo-wid > $F) &
X=`cat $F`
或
mkfifo $F
(gvim --echo-wid & > $F) &
X=`cat $F`
同样的故事。
我想要
或任何其他方式我可以获得gvim的窗口ID为wmctrl或xdotool或一些等价物(没有查询某些列表,我想直接进入该实例的窗口而没有字符串黑客攻击)。
虽然在这一点上,我真的很好奇为什么捕获不起作用。是什么给了什么?
答案 0 :(得分:0)
如果输出到stderr,则需要重定向
X=`gvim --echo-wid 2>&1`
答案 1 :(得分:0)
当gvim启动时,它会为gui分配一个新进程,这可以在后台运行,但是在整个程序关闭之前stdout不会关闭。
如果你将gvim管道加入头部,stdout会关闭,反引号会停止阻塞。
X=`gvim --echo-wid | head -n 1`
echo "got $X"