DMG生成用のBashスクリプト

DMG生成用のBashスクリプト

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]}}"

おすすめ記事