如何让脚本等待 Nautilus 退出

L. *_*mes 5 nautilus scripts

我有一个脚本,它将提取文件以检查到一个临时文件夹,然后调用 nautilus。

我试图让脚本等待 Nautilus 退出,然后删除临时文件夹。但是,在调用 Nautilus 后会立即删除该文件夹。

我知道 Nautilus 是控制桌面的 Gnome 的子窗口。但是,我试图找出一种方法来调用 Nautilus 的新实例或解决方法。

剧本:

#/bin/bash

tempdir=$(mktemp -d)

unzip ~/document.odt -d $tempdir
nautilus $tempdir

# waitfor nautilus to exit
# workaround 
zenity --info --title="Find Icons" --text="Click OK to exit" 2>/dev/null

rm -r $tempdir
Run Code Online (Sandbox Code Playgroud)

目前我正在使用Zenity作为一种解决方法,通过向用户提供提示来使脚本等待。我正在尝试删除这个额外的步骤,让脚本识别出 Nautilus 窗口已关闭,然后自动完成。

sud*_*dus 7

跟踪的PID,并从shell脚本作品与Xenial内核杀死它,我在Ubuntu 16.04.1 LTS的实时系统,并在最新的安装系统与Ubuntu 16.04 LTS(和Xenial内核)。

#!/bin/bash

echo "Starting Nautilus"

nautilus --no-desktop ~/Downloads & pid=$!

echo "pid=$pid"
ps -A|grep "$pid"

read -p "Press Enter when you are ready to kill the Nautilus window"

kill "$pid"
sync
echo "Checking that the process is gone"
ps -A|grep "$pid"
Run Code Online (Sandbox Code Playgroud)

编辑:

它可以工作,当像这样被杀死时,但是当用x控制按钮关闭时,该进程仍然存在,这是 Nautilus 的问题。

但是,如果您使用 Thunar 而不是 Nautilus,则当使用x按钮关闭窗口时,该进程将被终止。所以我建议为这个任务切换文件浏览器,

#!/bin/bash

echo "Starting Thunar"

thunar ~/Downloads

echo "Checking that the process is gone"
ps -A|grep "thunar"
Run Code Online (Sandbox Code Playgroud)