我有这段代码:
folder="test folder"
fil=`find "$folder" -type f -printf '%p %s\n'`
IFS=$'\n'
echo $fil
在文件夹中我有两个文件,执行后我得到
file1.txt 120
file2.txt 9
我的问题是这段代码:
for i in $fil
do
echo "$i"
done
在for循环中使用计数器我发现它只执行了一次而不是两次(因为有2个字符串由' \ n'分隔)并且当" echo&#34时;被执行我得到:
file1.txt 120
file2.txt 9
我希望"我"变量假定" file1.txt 120"第一次,第二次" file2.txt 9"
为什么它没有将这条线分开' \ n'?
答案 0 :(得分:1)
不要抓取find
输出然后循环。使用Middle button paste deleted text in Sublime 3:
while read -r file size; do
echo "file=$file"
echo "size=$size"
done < <(find "$folder" -type f -printf '%p %s\n')