首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建DMG的Bash脚本

创建DMG的Bash脚本
EN

Unix & Linux用户
提问于 2019-03-21 13:39:10
回答 1查看 263关注 0票数 1

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

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

我使用了以下方法:

代码语言:javascript
复制
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),我得到以下错误:

代码语言:javascript
复制
hdiutil: create failed - Invalid argument

改进脚本的建议是预先提出的welcome.Thanks :)

EN

回答 1

Unix & Linux用户

发布于 2019-03-21 17:10:07

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

我将$dest$name更改为合并的$dest,并添加了默认值。对于大小,我为最常见的大小添加了一点提示。

代码语言:javascript
复制
#!/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]}}"
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/507713

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档