Лучшее решение с плавающей точкой для сценария Bash?

0

Я использую bash calculator для вычислений с плавающей запятой, и я должен использовать перенаправление ввода и символ backtick (`) в скриптах.

Как нормальная скобка $[math operation] и expr не поддерживает вычисление с плавающей точкой. Есть ли другой способ сделать вычисление с плавающей запятой напрямую, вместо использования bc в скрипте. Мне не нравится ненужное перенаправление ввода и символ backtick (`) для скриптов.

#!/bin/bash
x=5
y=6
z=3.3
result=`bc <<end
scale=3
temp_divide=($x / $y)
temp_divide * $z
end`
echo "final result is $result"
P K
источник

Ответы:

1

Bash не поддерживает арифметику с плавающей запятой, поэтому вы застряли с помощью bc для этого. Вы можете использовать самостоятельно написанные вспомогательные функции, аналогичные float_eval, что делает использование bc в качестве встроенного калькулятора немного проще.

Если вам не нужно использовать Bash, вы также можете рассмотреть возможность использования ЗШ , который поддерживает операции с плавающей запятой. Пример:

evnu@centraldogma ~ 
% ((val = 1.0))
evnu@centraldogma ~ 
% ((val = 2.2))
evnu@centraldogma ~ 
% echo $val
2.2000000000
evnu@centraldogma ~ 
% ((val += 2.2))
evnu@centraldogma ~ 
% echo $val
4.4000000000
evnu
источник