Это обновление к вопросу, который я опубликовал ранее. Я немного углубился в это, но мне нужна помощь с новой проблемой.
Я сейчас работаю над сценарием оболочки. Мне нужно l oop через текстовый файл, взять текст из него, найти среднее число, максимальное число и минимальное число в каждой строке чисел, а затем распечатать их в виде диаграммы с названием каждой строки. Это текстовый файл:
Experiment1 9 8 1 2 9 0 2 3 4 5
collect1 83 39 84 2 1 3 0 9
jump1 82 -1 9 26 8 9
exp2 22 0 7 1 0 7 3 2
jump2 88 7 6 5
taker1 5 5 44 2 3
Это мой код до сих пор. Он должен работать, но он не будет выполнять никаких расчетов. Первый l oop захватывает строку текста, второй l oop отделяет имя от чисел, эти две работы. Затем l oop берет числа и выполняет вычисления. Он продолжает давать мне сообщение об ошибке «expr: нецелочисленный аргумент», почему он это делает? Я не должен
#!/bin/bash
while read line
do
echo $line | while read first second
do
echo $first
echo $second
sum=0
max=0
min=0
len=0
for arg in $second
do
sum=`expr $sum + $arg`
if [ $min > $arg ]
then
set min=$arg
fi
if [ $max < $arg ]
then
set max=$arg
fi
len=`expr $len + 1`
done
avg=`expr $sum / $len`
echo $avg
echo $min
echo $max
done
done < mystats.txt
Это желаемый вывод при вводе "bash statcal c. sh -s name mystats.txt"
Experiment Name Average Max Min
collect1 27 84 0
exp2 5 22 0
Experiment1 3 9 0
jump1 21 82 -1
jump2 31 88 5
taker1 13 44 2