이 스크립트를 사용하여 모든 창을 최대화하려고 하는데 작동하지 않는 것 같습니다. 어떤 도움이라도 좋을 것입니다.
#!/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
다른 모든 필드는 에 할당됩니다 $_
.