【问题标题】:How to silently install dmg file in mac os x system (using shell script)?如何在 mac os x 系统中静默安装 dmg 文件(使用 shell 脚本)?
【发布时间】:2014-01-29 10:26:37
【问题描述】:

我已使用以下命令进行 dmg 文件附加和 detech

hdiutil attach installer.dmg 
hdiutil detach installer.dmg 

在 dmg 文件中它包含 test.app GUI模式安装,我可以将test.app拖到应用程序位置

我需要的是当我双击脚本时,包含应用程序的 dmg 应该自动安装到

该终端窗口应自动关闭后在 mac os x 中的应用程序位置

提前感谢您的回答

【问题讨论】:

    标签: macos bash shell unix


    【解决方案1】:

    好吧,像下面这样的 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
    

    请注意,我没有在那个小脚本中检查任何参数,并且任何现有的同名应用都将被覆盖。

    HTH

    【讨论】:

    • 小心处理带有空格的路径名!使 hdiutil attach "$1"cp -rf "$VOLUME/*.app" /Applicationshdiutil detach "$VOLUME"(在变量引用周围添加 ")。不过,我不确定如何修复awk 调用。
    • 这个脚本中的 $l 是什么?它的价值是什么
    • 不是$l,而是$1,如果看不出区别,请使用更好的等宽字体!该变量包含传递给脚本的第一个参数。
    • 嗨。如果您将 awk '{print $3}' 更改为 cut -f 3,它将包含一个包含空格的文件夹。编辑:更新了上述内容。
    • hdiutil attach $DMG | grep /Volumes | sed 's/.*\/Volumes\//\/Volumes\//'
    猜你喜欢
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 2014-05-07
    • 2015-05-22
    相关资源
    最近更新 更多