74

変数が必要で、ある値を別の値で割った値を見つけたいです。これを行うには、どのコマンドを使用すればよいですか?

4

12 に答える 12

69

bash シェルでは、算術式を$(( ... ))

$ echo $(( 7 / 3 ))
2

あなたは整数に限定されていると思いますが。

于 2009-07-06T17:12:44.773 に答える
17

より良い方法は、任意精度の計算機である「bc」を使用することです。

variable=$(echo "OPTIONS; OPERATIONS" | bc)

元:

my_var=$(echo "scale=5; $temp_var/100 + $temp_var2" | bc)

ここで、「scale=5」は精度です。

man bc 

いくつかの使用例が付属しています。

于 2012-07-05T15:27:54.223 に答える
12

データ抽出用に設計されたユーティリティ/言語であるawkを使用できます

例: 1.2/3.4

>echo 1.2 3.4 | awk '{ print $2/$1 }'
0.352941
于 2014-07-11T20:31:15.963 に答える
11

私はまだRPN計算機であるdcを使用することを好むので、4桁の精度で67を18で割る簡単なセッションは次のようになります

>dc
4k
67
18/p
3.7222
q
>

明らかに、はるかに利用可能です: man dc

于 2009-07-06T18:51:15.370 に答える
8

bash では、部門に小数が必要ない場合は、次のことができます。

>echo $((5+6))
11
>echo $((10/2))
5
>echo $((10/3))
3
于 2009-07-06T17:13:38.267 に答える
5

Linux コンソールとはBashを意味すると思います。

XYが変数の場合、$(($X / $Y))求めるものを返します。

于 2009-07-06T17:12:36.223 に答える
2

bash を使用して $a を $b で除算する整数除算の例:

echo $((a/b))
于 2009-07-06T17:13:11.153 に答える
2

レイトレースの回答を使用してできる他のこと。バックティックを使用して別のシェル呼び出しの stdout を使用して、いくつかの計算を行うことができます。たとえば、いくつかのファイルから上位 100 行のファイル サイズを知りたいと思っていました。からの元のサイズwc -cはバイト単位ですが、キロバイトが知りたいです。これが私がしたことです:

echo `cat * | head -n 100 | wc -c` / 1024 | bc -l
于 2014-02-11T22:23:44.960 に答える
1

あなたは使用しようとする必要があります:

echo "scale=4;$variablename/3"|bc
于 2014-09-08T10:20:49.590 に答える