如何使用shell脚本在Mac OS X系统中静默安装dmg文件?

4
我已经使用了以下命令来挂载和卸载dmg文件
hdiutil attach installer.dmg 
hdiutil detach installer.dmg 

在dmg文件中包含test.app应用程序 GUI模式安装时,我可以将test.app拖到应用程序位置
我需要的是当我双击脚本时,包含应用程序的dmg应该自动安装到Mac OS X的应用程序位置,之后终端窗口应该自动关闭
提前感谢您的答复。
1个回答

5

好的,像下面这样的一个Shell脚本应该能够完成工作:

install_app.sh

#/bin/sh

VOLUME=`hdiutil attach $1 | grep Volumes | awk '{print $3}'`
cp -rf $VOLUME/*.app /Applications
hdiutil detach $VOLUME

你可以这样运行它:

% install_app.sh ~/Downloads/MyApp.dmg

请注意,我在这个小脚本中没有进行参数检查,任何同名的已有应用程序都将被覆盖。
希望对你有所帮助。

2
注意处理带有空格的路径名!将hdiutil attach "$1"cp -rf "$VOLUME/*.app" /Applicationshdiutil detach "$VOLUME"(在变量引用周围添加")进行修改。但是,我不确定如何修复awk调用。 - DarkDust
这个脚本中的 $l 是什么?它的值将是多少? - Mubasher
1
不是 $l 而是 $1,如果你看不出区别,请使用更好的等宽字体!该变量包含传递给脚本的第一个参数。 - zmo
嗨。如果你把awk '{print $3}'改成cut -f 3,它将包括一个带有空格的文件夹。编辑:已更新上述内容。 - SomeGuyOnAComputer
hdiutil attach $DMG | grep /Volumes | sed 's/.*\/Volumes\//\/Volumes\//' - tthsn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接