Bash

關閉除選定視窗以外的所有視窗

  • December 18, 2020

我想關閉除所選視窗之外的所有 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 視窗之一,然後它將關閉而另一個將保持活動狀態。

引用自:https://unix.stackexchange.com/questions/625132