
このスクリプトを使用してすべてのウィンドウを最大化しようとしても機能しないようです。どんな助けでもいいでしょう。
#!/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_ids
mapfile/readarray は、各行が独自の要素になる配列を作成します。
あるいは、読み取りループである可能性があります。
wmctrl -l | while IFS=' ' read -r window_id _; do
wmctrl -l
この場合、スペースを区切り文字として出力を読み込みます。各行の最初のフィールドはに割り当てられ、$window_id
他のすべてのフィールドはに割り当てられます$_
。