Мне нужно посчитать процентное изменение между двумя значениями.BASH: Процентное изменение - как его рассчитать? Как получить абсолютное значение без bc?
Код я здесь:
echo $time1
echo $time2
pc=$(((($time2 - $time1)/$time1 * 100)))
echo $pc
приносит такой вывод в консоль (с set -xe
опцией)
+ echo 1800
1800
+ echo 1000
1000
+ pc=0
+ echo 0
Код внутри математическое выражение, кажется, написано правильно, по-прежнему, я получите -80 или около того. Почему это происходит со мной?
Вторая часть вопроса. У меня нет доступа, и у меня не будет доступа к команде bc. Из того, что я слышал, это может дать мне абсолютное значение числа, которое у меня есть.
Итак, без команды bc - это будет хорошей идеей для условия IF?
if (((("$pc" > 20 || (("$pc" < -20)); then...
Bash делает только целочисленную арифметику, поэтому, если '$ time2 - $ time1' меньше, чем' $ time1', тогда деление всегда будет равным нулю. Однако, если вы слегка измените порядок выражения, как умножение перед делением, результат должен быть немного лучше. –
Это требование, чтобы это было сделано в чистом bash? –
@TomFenech, нет, это можно сделать в любом инструменте, доступном для меня. Например, можно сделать в perl. – dziki