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

Как обычные скобки $[math operation] и выражение не поддерживает вычисление с плавающей точкой. Есть ли другой способ сделать вычисление с плавающей запятой напрямую, вместо использования 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"

1 ответ1

1

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .