Skip to main content

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

Anonim

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

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

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

BCコマンドの構文

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

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

  • -h、--help:この使用法を表示して終了します。
  • -i、--interactive:対話モードを強制します。
  • -l、--mathlib:定義済みの数学ルーチンを使用します。
  • -q、--quiet:初期バナーを表示しません。
  • -s、--standard:非標準のbc構文はエラーです。
  • -w、--warn:非標準のbc構造について警告します。
  • -v、--version:バージョン情報を出力して終了します。

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

bcコマンドの例

基本的な電卓は端末に簡単に入力するだけで使用できます 紀元前その後、次のような正規表現を入力することができます:

4+3

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

7

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

#!/ bin / bashエコー '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 / bashecho '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エコー "スケール= 3; var1 = 6.5 / 2.7;var2 = 14 * var1;var2 * = $ 1;var2 "|紀元前

…とscript2には

#!/ bin / bash var0 = "100"echo "var0:$ var0"関数fun1エコー "スケール= 3; var1 = 10;var2 = var1 * $ var0;var2 "fres = $(fun1)エコー "fres:" $ fresvar10 = $(./ script1 $ fres);エコー "var10:" $ var10;

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