Answers:
因为* nix系统几乎允许任何字符都成为文件名的一部分(包括空格,换行符,逗号,管道符号等),所以您绝对不要在Shell脚本中解析“ ls”命令的输出。不可靠 请参阅为什么不应该解析ls的输出。
使用“查找”来创建文件列表。如果使用的是Bash,则可以将“ find”的输出插入到数组中。下面的示例,警告我使用了无效的“ curl”命令!
searchDir="sample/"
oldFiles=()
while IFS= read -r -d $'\0' foundFile; do
oldFiles+=("$foundFile")
done < <(find "$searchDir" -maxdepth 1 -type f -print0 2> /dev/null)
if [[ ${#oldFiles[@]} -ne 0 ]]; then
for file in "${oldFiles[@]}"; do
curl -F ‘data=@"$file"’ UPLOAD_ADDRESS
done
fi
echo ${dir##*/}
来摆脱困境。