スクリプトで "bc"電卓を使用する方法

Linuxプログラムbcは、便利なデスクトップ電卓や数学的スクリプト言語として使用できます。 端末からbc コマンドを呼び出すのは簡単です。

bcユーティリティに加えて、Bashシェルは、 算術演算実行するための他のいくつかの方法を提供します。

注: bcプログラムは、基本電卓またはベンチ電卓とも呼ばれます。

bcコマンドの構文

bcコマンドの構文はCプログラミング言語に似ており、加算、減算、プラスまたはマイナスなど、さまざまな演算子がサポートされています。

これらは、bcコマンドで使用できるさまざまなスイッチです。

基本的な計算機の使い方の詳細については、このbcコマンドマニュアルを参照してください。

bcコマンドの例

基本的な電卓は端末でbcを入力するだけで使用できます。その後、次のような通常の数式を入力できます。

4 + 3

...このような結果を得るには:

7

一連の計算を繰り返し実行する場合は、bc電卓をスクリプトの一部として使用するのが理にかなっています。 このようなスクリプトの最も簡単な形式は、次のようになります。

#!/ bin / bash echo '6.5 / 2.7' | 紀元前

最初の行は、このスクリプトを実行する実行可能ファイルのパスです。

2行目には2つのコマンドが含まれています。 echoコマンドは、一重引用符で囲まれた数式を含む文字列を生成します(この例では、6.5を2.7で割ったものです)。 パイプ演算子(|)は、この文字列を引数としてbcプログラムに渡します。 bcプログラムの出力がコマンドラインに表示されます。

このスクリプトを実行するには、ターミナルウィンドウを開いて、スクリプトが置かれているディレクトリに移動します。 スクリプトファイルはbc_script.shと呼ばれているものとします 。 ファイルが実行可能であることを確認するには、 chmodコマンドを使用します。

chmod 755 bc_script.sh

次に入力します:

./bc_script.sh

結果は次のようになります。

2

正解が2.407407 ...の3小数点以下を表示するには、単一引用符で区切られた文字列の中にscale文を使用します。

#!/ bin / bash echo 'scale = 3; 6.5 / 2.7 '| 紀元前

読みやすくするために、計算を伴う行を複数の行に書き直すことができます。 コマンドラインを複数の行に分割するには、行末にバックスラッシュを入れます。

echo 'scale = 3; var1 = 6.5 / 2.7; var1 '\ | 紀元前

bc計算にコマンドライン引数を含めるには、一重引用符を二重引用符に変更して、コマンドラインパラメータシンボルがBashシェルによって解釈されるようにする必要があります。

エコー "スケール= 3; var1 = 6.5 / 2.7; var2 = 14 * var1; var2 * = $ 1; var2" \ | 紀元前

最初のコマンドライン引数は変数 "$ 1"を使用してアクセスされ、2番目の引数は "$ 2"などを使用してアクセスされます。

今では、独自のカスタマイズされた算術関数を別々のBashスクリプトに記述し、他のスクリプトからそれらを呼び出すことができます。

たとえば、script1に次のものが含まれているとします。

#!/ bin / bash echo "scale = 3; var1 = 6.5 / 2.7; var2 = 14 * var1; var2 * = $ 1; var2" \ | 紀元前

...とscript2には

#!/ bin / bash var0 = "100" echo "var0:$ var0" function fun1 {echo "scale = 3; var1 = 10; var2 = var1 * $ var0; var2" \ | bc} fres = $(fun1)echo "fres:" $ fres var10 = $(./ script1 $ fres); エコー "var10:" $ var10;

... script2を実行すると、script2で計算された変数$ fresをパラメータとして使用してscript1が呼び出されます。