我有一个 bash 脚本,可以浏览我的音乐收藏并下载缺失的封面。我遇到的问题是,我无法 cd 到某些包含“&”、“(”和其他字符的目录。
脚本的相关部分复制如下:
IFS="\n"
IFS="$(printf '\n\t')"
for i in `find $1 -mindepth 2 -maxdepth 2 -type d '!' -exec sh -c 'ls -1 "{}"|egrep -i -q "^cover\.(jpg|png)$"' ';' -print`; do
echo "===="
echo "processing: " $i
cd "${i}"
#download_cover $i
echo "++++"
done
如果我对这些目录运行此脚本,我会得到以下输出:
cd 'media/FlacMusic/Mumford & Sons/Sigh No More'
devel/get_album_cover.sh: line 22: cd: media/FlacMusic/Mumford & Sons/Sigh No More: No such file or directory
答案1
这是原帖作者的解决方案。它是作为对问题的编辑发布的,但它应该是一个答案。
我去掉了变量周围的括号,脚本运行正常。
cd "$i"