Bash:处理带有特殊字符的文件

时间:2013-12-17 21:36:25

标签: bash special-characters

我有一个bash脚本可以将我的音乐库转换为mp3格式并将它们复制到另一个目录。由于目录和文件部分包含特殊字符,如(,)和&amp ;,脚本失败。

我已经设定:

IFS=$(echo -en "\n\b")

encode命令的代码如下:

ffmpeg -i ${f} -ab 192k ${SDCARD}/$(basename ${t})/$(basename ${d})/$(basename ${f%.*}.mp3)

文件结构是以下$ SDCARD / $ t / $ d / $ f,它们将是: / Volumes / MUSIC / Jessie Ware / Devotion(美国版)/ 09如果你永远不会移动.mp3

有什么建议吗?

由于 卢卡斯

1 个答案:

答案 0 :(得分:1)

通常,在引用变量时引用变量是一种好习惯,以防止您遇到的问题类型。请参阅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回来并给出他的评论答案,那么你应该把他的评论标记为正确,所以他首先得到了回答。)