Você está fazendo a pergunta errada. Você não deve esperar até que a janela seja fechada, mas até que o processo tenha morrido.
Felizmente, essa é uma pergunta mais fácil de responder.
while [ -n "$(pidof chrome eclipse)" ]; do
sleep 1
done
Estou usando o wmctrl para fechar as janelas de execução quando quero desligar o computador. É porque preciso salvar o espaço de trabalho no Eclipse e também não quero perder minhas guias abertas no Chrome. Eu escrevi um pequeno roteiro que realiza a coisa, mas não é perfeito. Às vezes, as janelas não fecham normalmente, por isso estou perdendo minhas guias ou alterações no código-fonte. Existe alguma maneira de dizer wmctrl espera até que a janela seja fechada? Meu script agora depende de 3 segundos de sono (a linha problemática), mas obviamente não é uma boa solução.
wmctrl -c chrome
wmctrl -c eclipse
sleep 3
poweroff
Você está fazendo a pergunta errada. Você não deve esperar até que a janela seja fechada, mas até que o processo tenha morrido.
Felizmente, essa é uma pergunta mais fácil de responder.
while [ -n "$(pidof chrome eclipse)" ]; do
sleep 1
done