Bash
關閉除選定視窗以外的所有視窗
我想關閉除所選視窗之外的所有 nemo 文件瀏覽器實例。
我必須按照腳本來做到這一點。
#!/bin/bash not_to_close=$(xdotool selectwindow) class_name=$(xprop WM_CLASS | cut -d '"' -f2) for i in $(xdotool search --desktop 0 --class "$class_name"); do if [ "$not_to_close" != "$i" ]; then xdotool windowclose "$i" fi done
但是,它有一個小問題。我必須點擊兩次(一次
xdotool
一次xprop
),我不想這樣做。如何將點擊次數減少到一次?
只需將類直接替換為其名稱,然後刪除
xprop
行。--class nemo
編輯:試試這個,我用兩個xclock視窗測試了它,也使用
windowkill
而不是windowclose
:xclock & xclock &
執行腳本:
#!/bin/bash not_to_close="$(xdotool selectwindow )" other_wins="$(xdotool search --class "xclock" | grep -v "$not_to_close")" while IFS= read -r line do echo "$line" if [ "$not_to_close" -ne "$line" ]; then xdotool windowkill "$line" fi done <<< "$other_wins"
然後選擇這兩個 xclock 視窗之一,然後它將關閉而另一個將保持活動狀態。