Как я могу выбрать и выполнить действия с Windows GTK от терминала? А именно, я хотел бы, закрывают все окна, заголовок которых включает определенную строку.
Обычно, я просто использую ps
найти соответствующий процесс и затем уничтожить процесс. Однако у меня есть обстоятельство, где несколько окон совместно используют тот же процесс, и я не хочу уничтожать родительское окно.
wmctrl - это инструмент для взаимодействия с менеджером X Window из терминала. Чтобы закрыть все окна, соответствующие строке $myStr
, используйте это:
while wmctrl -c "$myStr";do :;done
wmctrl использует параметр -c для закрытия окна. Удобно, это может сделать совпадение строк в заголовке окна, как я и надеялся. Тем не менее, wmctrl будет работать только с одним окном за раз, поэтому я повторяю цикл, пока все соответствующие окна не будут закрыты. Когда это происходит, wmctrl возвращает код ошибки и останавливает цикл. ':' Является встроенной оболочкой no-op , которая требуется, поскольку циклы bash не могут быть пустыми.
Вам может понадобиться сначала установить wmctrl, например. sudo apt-get install wmctrl