当我想关闭计算机时,我会使用 wmctrl 关闭正在运行的窗口。这是因为我需要保存 Eclipse 中的工作区,而且我也不想丢失 Chrome 中打开的选项卡。我编写了一个小脚本来完成这个任务,但它并不完美。有时窗口无法正常关闭,所以我会丢失选项卡或源代码中的更改。有没有办法告诉 wmctrl 等到窗口关闭?我的脚本现在依赖于 3 秒睡眠(有问题的行),但这显然不是一个好的解决方案。
wmctrl -c chrome
wmctrl -c eclipse
sleep 3
poweroff
答案1
你问错了。你不应该等到窗口关闭,而应该等到进程结束。
幸运的是,这个问题比较容易回答。
while [ -n "$(pidof chrome eclipse)" ]; do
sleep 1
done