Я открываю Наутилус из командной строки в новом окне. Я хочу выполнить другую команду после закрытия nautilus. Например:
bash -c 'sshfs -o idmap=user my_user@192.168.1.200:/ /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. Поэтому я хочу закрыть это окно ТОЛЬКО.
Не конкретный ответ, но несколько указателей, которые могут помочь.
Если у окна есть уникальный заголовок, вы можете получить его идентификатор окна, используя
NAUTILUS_WINDOWID=`xwininfo -name <title> |grep 'Window id' |awk '{print $4}'`
Теперь периодический вызов xwininfo -id $NAUTILUS_WINDOWID >/dev/null
должен помочь.
Возвращает 0
, если окно существует, и 1
в противном случае.
Эта работа:
#!/bin/bash
sshfs -o idmap=user my_user@192.168.1.200:/ /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