最大化所有窗口的 Bash 脚本不起作用

最大化所有窗口的 Bash 脚本不起作用

我试图使用这个脚本来最大化我的所有窗口,但它似乎不起作用。任何帮助都会很棒。

#!/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,其他所有字段都将分配给$_

相关内容