我有一个 bash 脚本,可以将我的音乐库转换为 mp3 格式,并将它们复制到不同的目录。由于目录和文件部分包含特殊字符,如(、)、&,脚本失败。
我已经设置:
IFS=$(echo -en "\n\b")
编码命令的代码如下:
ffmpeg -i ${f} -ab 192k ${SDCARD}/$(basename ${t})/$(basename ${d})/$(basename ${f%.*}.mp3)
文件结构如下 $SDCARD/$t/$d/$f 如下: /Volumes/MUSIC/Jessie Ware/Devotion (美国版)/09 If You're Never Gonna Move.mp3
有什么建议吗?
谢谢 卢卡斯
最佳答案
在引用变量时引用它们通常是一种很好的做法,以防止您遇到的问题类型。参见 http://tldp.org/LDP/abs/html/quotingvar.html了解更多。
一个例子:
jed@MBP:~$ FOO="one two three"
jed@MBP:~$ for i in $FOO; do echo The value of i is\: $i;done
The value of i is: one
The value of i is: two
The value of i is: three
jed@MBP:~$ for i in "$FOO"; do echo The value of i is\: $i;done
The value of i is: one two three
(如果 Kevin 回来并将他的评论作为答案,您应该将他的评论标记为正确,这样他才能获得第一个回答的荣誉。)
关于Bash:处理带有特殊字符的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20645175/