macOSでJHFS +形式のDMGファイルを自動的に作成(bashスクリプトを使用)しようとしています。スクリプトは、ユーザーが提供した情報を受け取ることができる必要があります。
- GB単位のDMGサイズ
- 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]}}"