0
次のスクリプトを用意しました。float
と別のフロートを比較したいと思います。浮動小数点数をシェルで定義された数値と比較する
#!/bin/sh
echo 'Enter a real number'
read n
echo n=$n
if (($(echo "$n > 0.0" |bc -l)))
then
echo 'n is +ve'
elif (($(echo "$n < 0.0" |bc -l)))
then
echo 'n is -ve'
else
echo 'n is zero'
fi
これは私のOS Xで正常に動作しますが、しかしif
文は( "見つからない")のLinux(Ubuntuの)でエラーを示しています。
もっと普遍的な構文は何でしょうか? (私は浮動小数点のためにbc
とまだ働くことができると思います)。
?あなたは 'bc'をインストールしていないのですか、あるいはあなたは非Bashシェルを使っていますか? – tripleee
あなたのshebangはあなたのスクリプトを実行するために '/ bin/sh'が呼び出されたことを示します。 '#!/ bin/bash'に変更しようとするべきです。 '(())'構造体はすべてのシェルで同じ動作をしません。 – SLePort