Linux 为什么此wmctrl脚本不移动窗口
好吧,我知道这有点难读,让我把它打断Linux 为什么此wmctrl脚本不移动窗口,linux,bash,shell,awk,command,Linux,Bash,Shell,Awk,Command,好吧,我知道这有点难读,让我把它打断 wmctrl -l | awk '{ if ($4 == "Android") print $4" "$5" "$6" "$7" "}' | while read -r line;do wmctrl -r \"$line\" -e 1,0,0,100,100; done 将列出由wmctrl控制的所有窗口。我的输出如下 wmctrl -l Android Emulator - droid8:5554 Android Emulator - droid11:
wmctrl -l | awk '{ if ($4 == "Android") print $4" "$5" "$6" "$7" "}' | while read -r line;do wmctrl -r \"$line\" -e 1,0,0,100,100; done
将列出由wmctrl控制的所有窗口。我的输出如下
wmctrl -l
Android Emulator - droid8:5554
Android Emulator - droid11:5556
Android Emulator - droid9:5558
然后awk(|awk'{if($4==“Android”)print$4”“$5”“$6”“$7”“}
)获取第四个元素为“Android”的所有行,并打印接下来的4个元素,生成以下内容
0x00800024 -1 DarkNetLab xfce4-panel
0x02c00006 -1 DarkNetLab Desktop
0x06806427 0 DarkNetLab mac@DarkNetLab: /opt/Analysis
0x06000008 0 N/A Emulator
0x06000003 0 N/A Android Emulator - droid8:5554
0x0b800009 0 N/A Emulator
0x0b800003 0 N/A Android Emulator - droid11:5556
0x05400009 0 N/A Emulator
0x05400003 0 N/A Android Emulator - droid9:5558
这些都是我想要移动的正确窗口,需要通过wmctrl的-r参数传入
最后我在读取-r行时使用了;执行wmctrl-r\“$line\”-e 1,0,0100;完成
使用Android Emulator-droid8:5554等每个窗口使用wmctrl命令移动窗口
没有窗户移动
如果我将代码更改为wmctrl-l | awk'{If($4==“Android”)在读取-r行时打印$4“$5“$6“$7”);执行回显“wmctrl-r\”$line\“-e 1,0,0100”;完成
为了回显应该执行的命令,我得到以下命令
wmctrl -l
Android Emulator - droid8:5554
Android Emulator - droid11:5556
Android Emulator - droid9:5558
如果我将任何一行复制粘贴到终端并执行,终端将正确运行并移动窗口。。所以我想知道为什么脚本不起作用
提前感谢您的帮助,我想这是bash何时/如何执行命令并用值替换变量的问题
谢谢你的帮助 移除“$line”周围的转义符,即将“$line”更改为“
”…执行wmctrl-r\“$line\”…
仅执行“”…执行wmctrl-r“$line”…
”哇,你就是那个人。真不敢相信这是真的,哈哈。如果你想把这个作为一个答案,我会把它标记为正确的。