bash - 将路径传递给带有变量的 BASH 脚本
问题描述
我编写了一个hdiutil
在 OSX 中使用的小脚本,但是在将路径传递给包含空格的输出变量时遇到了问题。只需用户将路径文件夹拖到终端窗口上,然后将其读取到变量中,即可生成路径。基本上我有路径:
echo "Drag Destination Folder to Window or Leave Blank to Create on Desktop:"
read createDest
createDest=$(echo "$createDest" | sed 's/ /\\ /g')
然后我提示输入所需的名称
echo "Enter Name for Image (also used for Volume):"
read varName
varName=$(sed -e 's/[^A-Za-z0-9._-]/_/g' <<< $varName) #remove illegal chars
将它们与
path=$(echo ${createDest}/${varName})
最后生成文件
Echo -n $varPass | hdiutil create -encryption -stdinpass -type SPARSEBUNDLE -size ${varSize}G -fs HFS+J -volname $varName $path
只要路径中没有空格,这一切都可以正常工作,但是一旦出现,我就会收到一条错误hdiutil
消息:
hdiutil: create: Only one image can be created at a time.
如果我手动输入密码就可以了,所以我对我的格式出错的地方有点困惑。
任何帮助将不胜感激。
干杯
克里斯
解决方案
到处引用所有变量:
echo -n "$varPass" | hdiutil create -encryption -stdinpass -type SPARSEBUNDLE -size "${varSize}G" -fs HFS+J -volname "$varName" "$path"
推荐阅读
- nmap - NMAP - 在扫描多个 IP 地址之间创建延迟
- r - 在具有相同改进的预测变量中进行选择
- npm - 在 Angular 5 中为每个请求响应时间显示一个进度条
- java - 指南针在 360 和 0 之间移动并检查是否有负面变化
- android - Phonegap / cordova android应用程序底部的空白空间
- c# - 从 FieldInfo 对象获取 PropertyInfo.Name
- c - 将 uint8_t 放入 uint64_t
- shopify - 新注册的用户在 Shopify 中被重定向
- css - rake assets:precompile > Sass::SyntaxError: Invalid CSS after "padding": expected ";", was ":20px;"
- c# - 如何在一次调用 Azure 密钥保管库中获取所有机密