私は bash スクリプトを作成しようとしていますが、浮動小数点演算を行う必要がありました。基本的に私はこのようなことをしたい:
NUM=$(echo "scale=25;$1/10" | bc)
if [ $? -ne 0 ]
then
echo bad
fi
私が遭遇している問題は $? bc 呼び出しではなく、echo プログラムからの出力を保持する傾向があります。bc プログラムからの出力を変数に保存する方法はありますか?
編集:
素早い返信ありがとうございます。この問題を別の方法で見ることができます。スクリプトを少し変更して、次のようにするとします。
#!/bin/bash
NUM=$(echo "scale=25;$1/10" | bc)
if [ $? -ne 0 ]
then
echo bad
exit
fi
echo "$NUM"
ユーザーが通常の浮動小数点値を入力すると、正常に動作します。
bash script.sh 1.0
出力:
.1000000000000000000000000
ただし、ユーザーが間違った値を入力すると、スクリプトは回復できません。
bash script.sh 1.0a
出力:
(standard_in) 1: parse error
私がやろうとしているのは、それを優雅に終了させることです。