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