bash:while循环未按预期执行

时间:2016-10-06 19:40:28

标签: bash unix

我很难理解为什么我无法进入我读取j循环的时候。我的程序的目标是输入文件1-5并计算每个文件中的数字总和。我得到的输出显示执行了读取j行,但是没有输入while循环。这对我来说没有直观意义,因为如果读取该行,则while条件将成立。下面是输出和下面的程序片段:

in for loop
file1
in for loop
1 9 6 3 3 6
file2
in for loop
1 3 7 6 4 4
file3
in for loop
1 4 8 8 2 4
file4
in for loop
1 5 9 9 1 7
file5

代码:

for (( n=0;n<$columns;n++ ))
do
    echo "in for loop"
    echo $j
    filename="file$counter"
    echo "$filename"
    #while reading line from current file, take the numbers and find the sum
    while read j
    do
        echo "in while loop"
        for number in $j
        do
            sum=$(($sum + $number))
        done
        echo "Sum: $sum"
    done < $filename
    counter=$(($counter + 1))
done

1 个答案:

答案 0 :(得分:0)

解决方案:在每个文件的行尾添加换行符,读取查找换行符以识别行。