Bashスクリプトで浮動小数点式を表現する方法

Bashスクリプトで浮動小数点式を表現する方法

なぜ

a2=100.    
echo 1.1*$a2|bc   

端末では機能しますが、次のスクリプトの3つのバリエーションは機能しません。

a2=100.  
echo "  
1.1*$a2|bc  
$(1.1*$a2|bc)  
$((1.1*$a2|bc))  
">x.sh    

答え1

echoこれは、パイプで接続したスクリプトコードにステートメントを入れなかったためですx.sh。 2番目のバリアントには追加のechoサブシェルコマンドが必要です$(...)。 3番目の変形$((...))は、算術拡張が浮動小数点数では機能しないため、効果がありません。

a2=100.  
echo "  
echo 1.1*$a2|bc;  
echo $(echo 1.1*$a2|bc);
">x.sh    

結果:

# sh x.sh
110.0
110.0

関連情報