shell wmccord不扩展变量[关闭]

i1icjdpr  于 5个月前  发布在  Shell
关注(0)|答案(2)|浏览(86)

**已关闭。**此问题不符合Stack Overflow guidelines。目前不接受回答。

这个问题似乎与help center中定义的范围内的编程无关。
28天前关闭。
Improve this question
我有一个窗口,其窗口ID为0x0100000b。如果我运行

wmctrl -c 0x0100000b

字符串
它会按预期关闭此窗口。但是,如果我

test=0x0100000b
wmctrl -c $test


它没有(在zsh和bash上都没有)。我不知道为什么会发生这种情况,因为我希望达到相同的结果。这只是一个MWE,它揭示了我面临的问题,即使用wmctrl命令扩展参数。

b09cbbtk

b09cbbtk1#

这是很奇怪的,它没有工作,这两个命令的行为应该完全相同。
作为解决方法,请尝试:

kill $(wmctrl -lp | awk '/0x0100000b/{print $3}')

字符串

cxfofazt

cxfofazt2#

实际上,wmctrl正确地扩展了变量。我在我的部分缺少了一个选项。如果你想让wmctrl通过窗口ID而不是字符串名称来解释窗口参数,你必须传递-i标志。从手册中:
-i将窗口参数()解释为数值而不是窗口的字符串名称。如果数值以前缀'0x'开头,则假定为十六进制数。
如果你不把这个参数,你会得到一个不可预知的行为时,通过数字参数。

相关问题