我正在尝试在 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]}}"