Назад | Перейти на главную страницу

bc: использование «масштаба» с переменной bash

Легко, я пишу сценарий, которому нужны значения с двумя цифрами после плавающей запятой. Пытаюсь использовать 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