我试图使用这个脚本来最大化我的所有窗口,但它似乎不起作用。任何帮助都会很棒。
#!/bin/bash
window_ids=$(wmctrl -l | cut -f1 -d " ")
for window_id in $window_ids
do
wmctrl -i -r "$window_ids" -b add,maximized_vert,maximized_horz
done
答案1
您正在window_ids
循环内调用,但您似乎想要window_id
我不太熟悉 wmctrl 命令,但您通常也应该避免使用分词来创建这样的循环。
您可以使用数组:
mapfile -t window_ids < <(wmctrl -l | cut -f1 -d " ")
for window_id in "${window_ids[@]}"; do
mapfile/readarray 将创建一个数组window_ids
,每一行都成为它自己的元素
或者也许是一段读取循环:
wmctrl -l | while IFS=' ' read -r window_id _; do
wmctrl -l
在这种情况下,将使用空格作为分隔符来读取输出。每行的第一个字段将分配给$window_id
,其他所有字段都将分配给$_
。