簡単に言うと、浮動小数点の後に2桁の値が必要なスクリプトを書いています。 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
また、変数$(())の内部では、$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