【发布时间】:2013-10-23 16:30:46
【问题描述】:
我正在 Applescript 应用程序中执行以下行。
set POSIX_path to "/Applications/iPhoto.app"
do shell script "sudo rm -rfv " & quoted form of POSIX_path with administrator privileges
身份验证屏幕按原样弹出,但在验证应用程序后,执行此命令时会冻结。此问题仅在 10.9 中出现。
当我将要删除的文件夹的权限设置为“每个人都可以读写”时,它就可以工作了。
有人知道发生了什么变化吗?
编辑:当我通过检查du -shx /Applications/iMovie.app 重复执行此脚本时,每次尝试都会删除更多文件。
$ open compiled-applescript.app/
$ du -shx /Applications/iMovie.app
1.4G /Applications/iMovie.app
-- force quit AppleScript --
$ open compiled-applescript.app/
$ du -shx /Applications/iMovie.app
1.3G /Applications/iMovie.app
-- force quit AppleScript --
$ open compiled-applescript.app/
$ du -shx /Applications/iMovie.app
1.0G /Applications/iMovie.app
【问题讨论】:
-
它在 OS X 10.9 (13A603) 上运行良好
-
如果您从终端执行
sudo rm -rfv /Applications/iPhoto.app会发生什么?这需要多长时间?time sudo rm -rfv /Applications/iPhoto.app -
从终端它工作正常,大约需要 18 秒。该问题与 AppleScript 中命令的执行密切相关。
-
如果省略
sudo会发生什么?我怀疑do shell script可能正在等待您为 sudo 输入密码。我认为with administrator privileges应该足以提升权限,也不需要 sudo。不幸的是,我目前没有安装 mvericks 来测试它。 -
我省略了它。仍然挂起。
标签: macos shell applescript admin osx-mavericks