シェルスクリプトのbc計算の問題

シェルスクリプトのbc計算の問題

Ubuntu 14.04.1 64ビットLTSでシェルスクリプトを作成していますsequencefor loop変える変える言葉のない私は非常に奇妙に振る舞い、電卓にエラーがたくさんありますbc。次のコードスニペットを実行してエラーを再現できます。

#!/bin/bash
S=0.030
F=0.150
N=30
DIFF=`echo $F - $S | bc -l`
dw=`echo $DIFF / $N | bc -l`
is=`echo $S / $dw | bc -l`
if=`echo $F / $dw | bc -l`
for i in `seq $is $if` 
    do
        w=`echo "scale=3; $i * $dw" | bc -l`
done

シーケンスの先頭を定数に変更すると完全に機能しますが、変数の場合は問題が発生し、出力は次のようになります。

(standard_in) 1: syntax error
...
...
(standard_in) 1: syntax error

この行動の理由は何ですか?私はあなたの提案とコメントを受けたいと思います。

ベストアンサー1

,問題は、私のUbuntuインストールの小数点区切りが(ドット)ではなく(カンマ)に設定されていることです.。次のコマンドに変更しました。

sudo update-locale LC_NUMERIC="en_GB.UTF-8"

問題が解決しました。

おすすめ記事