如何使用Shell在MAC OSX中逐个启动dmg?

时间:2014-02-27 11:21:02

标签: macos bash shell sh

我正在使用MAC OSX 10.8 Mountain Lion。

我正准备一个Shell脚本来逐个启动3个dmg文件。

我想在安装另一个dmg之后每个启动dmg文件。

我在脚本中使用了wait函数,但它一直在等待一个dmg关闭。

请建议任何解决方案。

2 个答案:

答案 0 :(得分:8)

这里有一种方法可以为每个卷打开dmg文件,复制应用程序并卸载卷:

for f in *.dmg: do
    VOLUME=$(hdiutil attach "$f" | tail -1 | awk '{print $3}')
    cp -r "$VOLUME/"*.app /Applications/
    diskutil unmount "$VOLUME"
done

在dmg文件的目录中运行。

答案 1 :(得分:3)

查看Mac OS X open命令。它会根据后缀自动打开包含已注册Mac程序的文件。

$ open foo.dmg   # Opens and mounts the disk image in Finder.

它返回到终端中的当前进程,因此您的shell脚本可以继续(尽管Mac上的活动应用程序将是Finder)。您可以使用umount /Volumes/<image name>来卸载磁盘映像。 Word'o Warning Volume 的名称可能与DMG文件的名称不同。