我有一个bash脚本,该脚本需要遍历iOS设备目录中的文件并逐个删除文件。 要从命令行列出文件,请使用以下命令:
ios-deploy --id UUID --bundle_id BUNDLE -l | grep Documents
然后逐个处理每个文件,我在脚本中使用以下for循环
for line in $(ios-deploy --id UUID --bundle_id BUNDLE -l | grep Documents); do
echo "${line}"
done
现在的问题是,有些文件的名称中包含空格,在这种情况下,for循环将它们视为2行。
如何在for循环定义中转义空格,以使每个文件占一行?
答案 0 :(得分:2)
这可能会解决您的问题:
while IFS= read -r -d $'\n'
do
echo "${REPLY}"
done < <(ios-deploy --id UUID --bundle_id BUNDLE -l | grep Documents)
根据Charles Duffy条推荐内容进行编辑:
while IFS= read -r line
do
echo "${line}"
done < <(ios-deploy --id UUID --bundle_id BUNDLE -l | grep Documents)