繁体   English   中英

无法将gvim的stdout放入bash变量中

[英]can't get stdout of gvim into a bash variable

在尝试回答这个问题时,我正在尝试gvim --echo-wid ,我认为它将与xdotool一起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在后台
  • 在bash变量中同步输出其stdout

或以其他任何方式可以获得wmctrl或xdotool或某些等效项的gvim的窗口ID(不查询某些列表,我想直接转到该实例的窗口,而不会发生字符串被黑客入侵)。

尽管在这一点上,我真的只是好奇为什么捕获无法正常工作。 是什么赋予了?

如果输出到stderr,则需要重定向

X=`gvim --echo-wid 2>&1`

当gvim启动时,它将为gui派生一个新进程,该进程可以在后台运行,但是直到整个程序关闭,stdout才会关闭。

如果将gvim用管道输送到头部,则stdout将关闭,反引号将停止阻塞。

X=`gvim --echo-wid | head -n 1`
echo "got $X"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM