動作しないすべてのウィンドウを最大化する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

window_idsmapfile/readarray は、各行が独自の要素になる配列を作成します。


あるいは、読み取りループである可能性があります。

wmctrl -l | while IFS=' ' read -r window_id _; do

wmctrl -lこの場合、スペースを区切り文字として出力を読み込みます。各行の最初のフィールドはに割り当てられ、$window_id他のすべてのフィールドはに割り当てられます$_

おすすめ記事