入力ファイルからの数値の束を一時ファイルにロードしたい。スクリプトの形式は「testing -row/-col [入力ファイル]」です。入力ファイルは、ほとんどの場合、次のような乱数の集まりです
1 2 3 4
3 3 5 6
9 4 4 2
以下の私のコードは、この入力ファイルを引数として取得し、これらの数値を新しい一時ファイルに "cat" しようとしています。そこから、この一時ファイルから行の平均値を見つけようとしています。
FILENAME=$2
TMP=./TMP2.$$
cat $FILENAME > $TMP
#average row
function avg_row {
while read -a row
do
total=0
sum=0
for i in "${rows[@]}"
do
eum=`expr $sum + $i`
total=`expr $total + 1`
done
average=`expr $sum / $total`
echo $average
done < $TMP
}
ただし、TMPファイルを「cat」するとtesting_fileとまったく同じように表示されますが、スクリプトを実行すると印刷されます
expr: division by zero
expr: division by zero
expr: division by zero
なぜこれが起こるのかについての提案やアイデアはありますか? ありがとうございました。