我正在尝试在包含空格、逗号和括号的文件夹上创建一个 for 循环。例如:
Italy - Rimini (Feb 09, 2013)
首先,它会扫描父文件夹 /albums 中的子文件夹,如上例所示。然后它对那些子文件夹中的文件执行 curl 操作。如果子文件夹不包含空格、逗号或其他符号,则可以正常工作。
for dir in `ls /albums`;
do
for file in /albums/$dir/*
do
curl http://upload.com/up.php -F uploadfile[]=@"$file" > out.txt
php process.php
done
php match.php
done
但是如果有这样的符号,似乎 curl 位被卡住了 - 它找不到 $file (可能是因为 $dir 不正确)。
我可以替换子目录中的所有符号或删除它们或将文件夹重命名为 001、002,它可以完美运行。但在诉诸于此之前,我想知道是否可以使用 bash 技巧来解决它,同时保持子文件夹名称不变?