用于创建 DMG 的 Bash 脚本

用于创建 DMG 的 Bash 脚本

我正在尝试在 macOS 上自动(使用 bash 脚本)创建 JHFS+ 格式的 DMG 文件。该脚本应该能够接收用户提供的:

  • DMG 的大小(以 GB 为单位)
  • DMG 的目的地
  • 文件系统类型(HFS+、JHFS+、APFS、FAT32、ExFAT 或 UDF)
  • 卷名
  • 要创建的 DMG 的名称。

我使用了以下内容:

date
read -p "Enter the size of the DMG:   " size        
read -e -p "Enter the destination of the DMG:   " dest  
read -p "Enter the filesystem (HFS+,JHFS+,APFS,FAT32,ExFAT or UDF)  :" fs
read -p "Enter the Volume name :" volname
read -p "Enter the name of the DMG:" name

hdiutil create -fs {"$fs"} -size "$size" -volname "{$volname}" "{$dest\/$name}"
exit

问题是当执行脚本时,大小为“1g”(1GB),我收到以下错误:

hdiutil: create failed - Invalid argument

欢迎提出改进脚本的建议。提前致谢:)

答案1

大括号{}变量周围是错误的,转义斜杠\/不起作用。

我将$dest和更改$name为组合$dest并添加的默认值。对于尺寸,我添加了一些最常见尺寸的提示。

#!/bin/bash

defaults=( 1g HFS+ "my volume" ~/Desktop/myvolume.dmg )

read -ep "Enter the size (??m|??g|??t) [${defaults[0]}] " size 
read -ep "Enter the filesystem (HFS+, JHFS+, APFS, FAT32, ExFAT, UDF) [${defaults[1]}] " fs
read -ep "Enter the volume name [${defaults[2]}] " volname
read -ep "Enter the image destination [${defaults[3]}] " dest

hdiutil create -size "${size:-${defaults[0]}}" -fs "${fs:-${defaults[1]}}" -volname "${volname:-${defaults[2]}}" "${dest:-${defaults[3]}}"

相关内容