如何让脚本等待 Nautilus 退出

如何让脚本等待 Nautilus 退出

我有一个脚本,它将提取要检查的文件到临时文件夹中,然后调用 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

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

答案1

PID在具有 Xenial 内核的 Ubuntu 16.04.1 LTS 的实时系统以及具有 Ubuntu 16.04 LTS(和 Xenial 内核)的最新安装系统中,跟踪并从 shellscript 中杀死它对我来说都是可行的。

#!/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"

编辑:

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

但是如果你使用 Thunar 而不是 Nautilus,当使用按钮关闭窗口时,进程将被终止x。所以我建议切换文件浏览器来完成此任务,

#!/bin/bash

echo "Starting Thunar"

thunar ~/Downloads

echo "Checking that the process is gone"
ps -A|grep "thunar"

相关内容