循环重击问题

时间:2015-07-06 17:02:31

标签: bash for-loop

我有这段代码:

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'?

1 个答案:

答案 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')