Легко, я пишу сценарий, которому нужны значения с двумя цифрами после плавающей запятой. Пытаюсь использовать bc
Я не понимаю, как использовать «масштаб», т.е.
A=12 ; bc <<< $(($A/5))
это правильно, но добавление «масштаба» приводит к ошибке:
A=12 ; bc <<< 'scale=2;$(($A/5))'
(standard_in) 1: illegal character: $
(standard_in) 1: illegal character: $
Замените одинарные кавычки двойными; потому что с одинарными кавычками $A
в вашем уравнении не расширяется, а рассматривается как буквально $A
не 12
A=12 ; bc <<< "scale=2;$(($A/5))"
2
Кроме того, внутри $ (()) to переменную не нужно указывать как $A
, просто A
будет делать, например
A=12 ; bc <<< "scale=2;$((A/5))"
2
Затем, выполняя $ (()), вы вызываете подоболочку, чего вы не хотите делать, потому что bc
тогда ничего не делает. Попробуй это
A=12 ; bc <<< "scale=2; $A/5"
2.40
Попробуйте:
A=12;echo 'scale=2;'"$A / 5"|bc -l