Чтобы создать команду, которая находит id
последнее окно, созданное Firefox
(и закрывающее его), вам необходимо wmctrl
установить:
sudo apt-get install wmctrl
Команда
Затем используйте команду:
wmctrl -ic "$(wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }')"
Объяснение:
wmctrl -l
перечисляет все окна, но важным свойством команды является то, что она перечисляет окна в порядке их создания .
Следовательно:
wmctrl -l | grep 'Mozilla Firefox' | tail -1 | awk '{ print $1 }'
буду:
список всех окон:
wmctrl -l
найдите те (строки) с «Mozilla Firefox» в их названии:
grep 'Mozilla Firefox'
найти последний (который также является последним созданным):
tail -1
извлечь первую строку в строке (это окно -id):
awk '{ print $1 }'
Команда:
wmctrl -ic
затем убьет самое последнее окно Firefox по его идентификатору (изящно).
Или даже более надежно:
В то время как команда выше хорошо работает практически во всех случаях есть небольшая вероятность конфликтов имен, если , например , другое окно существует с «Mozilla Firefox» в названии, но не окно из Firefox
(маловероятно, но все же).
Что должно работать «водонепроницаемый» , поэтому для идентификации окна в списке окон ( с помощью wmctrl -lp
) с помощью ПИД - регулятора из firefox
, вместо строки в имени окна:
wmctrl -ic "$(wmctrl -lp | grep "$(pgrep firefox)" | tail -1 | awk '{ print $1 }')"
Как вы можете видеть, в этой команде
wmctrl -l | grep 'Mozilla Firefox'
производство строк, содержащих «Mozilla Firefox», заменяется на:
wmctrl -lp | grep "$(pgrep firefox)"
производя строки, содержащие pid firefox (как вывод pgrep firefox
)