時には、ある数字を別の数字に分割する必要があります。このためにbash関数を定義できれば良いでしょう。今までこんな表現を書くしかなかった
echo 'scale=25;65320/670' | bc
しかし、次のような.bashrc関数を定義できれば良いと思います。
divide () {
bc -d $1 / $2
}
答え1
次の便利なbash機能がありますcalc
。
calc () {
bc -l <<< "$@"
}
使用例:
$ calc 65320/670
97.49253731343283582089
$ calc 65320*670
43764400
この設定は自分に合わせて変更できます。たとえば、
divide() {
bc -l <<< "$1/$2"
}
メモ: <<<
はここにある文字列これは標準入力として供給されますbc
。電話する必要はありませんecho
。
答え2
Bashはある程度独自に数学を実行できます。しかし、丸められているので、正確さには役に立ちません。
[user]$ echo $(( 10/5 ))
2
しかし、あなたは正しいです。 bash機能は簡単なショートカットで、あなたの例は基本的に機能します。
divide() {
echo "scale=25;$1/$2" | bc
}
.bashrcに入れると、次のことができます。
[user]$ divide 10 5
2.0000000000000000000000000
答え3
Bash 組み込み「expr」が次のようになることがわかります。
$ expr 60 / 5
12
整数に制限され、引数の間にスペースが必要です。
すでに使用しているエコー式の観点から関数を定義するのを妨げるものは何ですか?つまり
divide () {
echo $1/$2 | bc
}
答え4
システムにインストールされていてcalc
丸めが気に入らない場合は、次のことができます。
div() { calc "$1 / $2"; }