1

我想将以下命令的结果放入一个变量中。

xprop -name "google-chrome-stable" | grep "window id" | awk '{print $5}' | awk '{print $1}'

结果应该是这样的

OUTPUT=xprop -name "google-chrome-stable" | grep "window id" | awk '{print $5}' | awk '{print $1}'
echo $OUTPUT

我知道这可以通过命令替换来完成。链接命令替换中的示例不够详细,因为它们没有说明如何转义引号和撇号。有人可以帮我找出解决方法吗?

4

2 回答 2

1

看起来你只需要这样做:

output=$(xprop -name "google-chrome-stable" | awk '/window id/{print $5}')
echo "$output"

无需在$( ). 我已经将要在双引号中回显的变量包装起来,以防止发生全局扩展等事情。作为奖励,我结合了您的 grep 和 awk 命令,并删除了最后一个没有做任何有用的命令。

我还将您的变量名设为小写。大写变量名应保留给 shell 内部。有一天,当您调用了一个变量$PATH并且突然一切都停止工作时,您会为此感谢我...

于 2014-12-31T15:52:16.083 回答
1

如果您尝试获取组长窗口,则可以使用以下内容。

output=$(xprop -notype -f WM_HINTS "32mx" ' ?m6($8)\n' -name google-chrome-stable WM_HINTS | awk '{print $2}')
echo "$output"

参数-f是从 xprop 源本身和一些阅读关于formatand的手册页中提取的dformat

手册页Description部分解释了所有关于和的内容。xpropformatdformat

于 2014-12-31T16:28:51.367 回答