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