我通过命令行在新窗口中打开 Nautilus。我想在 nautilus 关闭后执行另一个命令。像这样:
bash -c 'sshfs -o idmap=user [email protected]:/ /media/192.168.1.200 | nautilus /media/192.168.1.200;fusermount -u /media/192.168.1.200'
fusermount -u /media/192.168.1.200
在这种情况下,我只想在 Nautilus 关闭后执行。
可能吗?
附录:我经常打开多个 Nautilus 窗口。所以我只想关闭这个窗口。
答案1
虽然不是一个具体的答案,但可以提供一些可能有帮助的建议。
如果窗口具有唯一标题,则可以使用以下方法获取其窗口 ID
NAUTILUS_WINDOWID=`xwininfo -name <title> |grep 'Window id' |awk '{print $4}'`
现在定期呼叫xwininfo -id $NAUTILUS_WINDOWID >/dev/null
应该可以解决问题。
0
如果窗口存在则返回,1
否则。
答案2
本作品:
#!/bin/bash
sshfs -o idmap=user [email protected]:/ /media/192.168.1.200 | nautilus /media/192.168.1.200
sleep 1
lc_id=`xwininfo -name 192.168.1.200 |grep 'Window id' |awk '{print $4}'`
while [ ! -z "$(xwininfo -id "$lc_id" | grep "Absolute upper-left X" )" ]
do
sleep 1
done
fusermount -u /media/192.168.1.200
感谢@Mahesh