Вот мой кусок кода
if [ $totalavg -gt 1000000 ]; then
printf "%0.1f MB/s (average)\n" $(echo "scale=1; $totalavg/100000" | bc)
elif [ $totalavg -gt 1000 ]; then
printf "%0.1f KB/s (average)\n" $(echo "scale=1; $totalavg/1000" | bc)
else
printf "%i B/s (average)\n" "$totalavg"
fi
Переменная totalavg - это целое число, извлекаемое из / proc / files. Все в порядке, пока целое число не станет больше 1000, чтобы достичь одного из операторов if, и выясняется, что
./script.sh: row (with second if above 1000): printf: 1.7: wrong number
Я потерял 2 часа времени, возможно, из-за этой сверхъестественной проблемы смеха. Но я просто не могу это исправить, и я не знаю, что происходит.