Я пытаюсь сделать сценарий, который проверяет, закрывается ли Spotify. Я попробовал следующее для печати количества открытых окон Spotify, но оно не работает.
wmctrl -l | grep "Spotify" | wc -l
Причина состоит в том, потому что, когда Spotify играет музыку, изменения заголовка окна в названии песни, которая играет, и она не включает "Spotify".
Я думал, что мог сделать что-то как следующее для печати количества открытых окон Spotify:
wmctrl -l | awk '{print $1}' | xargs -I id ... | wc -l
Но я не уверен, что управляет, чтобы я мог использовать для проверки названия процесса, который выполнил бы окно, учитывая окно ID, возвращенное из wmctrl (в форме 0x06200001)
wmctrl -l | awk '{print $1}' | xargs -i xprop -id {} | grep WM_CLASS\(STRING\)\ =\ \"spotify\" | wc -l
Я использовал xargs для выполнения xprop -id <window-id>
на каждом открытом окне, и для каждого окна Spotify, вывода xprop
показал бы (среди большого количества другого материала) строку как это:
WM_CLASS(STRING) = "spotify", "Spotify"
Таким образом, я передал xprop по каналу в grep WM_CLASS(STRING) = "spotify"
, obvoiusly выход из пробелов, цитат и скобок.