Exprおよびcalcコマンド:ターミナルで数式を解きます

私は常にスクリプトをプログラミングしている人の一人です bash 日々の状況を解決するために(AP /ルーターのパスワードを解読し、プロセスを自動化するなど。).

数式の値を変数に割り当てたり、単に数式を操作したりする必要がある場合があります。そこでは、bashや数式、計算があまり使いにくいという問題があります。 たまたまbashはpythonのようではありません。 変数= 1 + 5/6 (たとえば)、Bashではコマンドを使用する必要があります o カルク

Exprコマンド

言い換えると、exprコマンドは、ターミナルで数式を解くのに役立ち、必要なものを計算できます。 たとえば、1 + 2 * 8/3の結果を表示したい場合は、ターミナルに次のように配置します。

expr 1 + 2 \* 8 / 3

アスタリスクの前に*バックスラッシュを付けることに注意してください-»\ ... exprは、\を除いてアスタリスクを乗算記号として解釈しないため、必要です。

そして、結果が画面に表示されます。 これがいくつかの例のスクリーンショットです:

スクリーンショット_expr1

最終的な計算(14/4と13/4)でわかるように、14を4で割った値は実際には3.5であり、13を4で割った値は実際には3.25です。では、どちらの場合も3を表示できるのはなぜですか。 exprコマンドは小数を表示しません。つまり、コンマの後に続くものは表示されず、整数のみが表示されます。

数式の結果を変数に割り当てたい場合(例:10/2)、次のようになります。

variable=`expr 10 / 2`

次に、次のように確認します。

echo $variable

各文字の間にスペースがあることが重要です。つまり、各数値、各加算、減算、乗算、または除算記号の間にスペースがあります。

計算コマンド

これは、前のものとは異なり、小数に関して正確です。例:

calc 15 / 4

それは私たちに表示されます:3.75

これはいくつかの例のスクリーンショットです:

スクリーンショット_calc

exprとは異なり、calcを使用する場合は、前の画像のように、各文字の間にスペースがない、つまり、数字と記号の間にスペースがない方がよいでしょう。 また、*の前に\を付ける必要もありません。

さて、これは基本的に私があなたに伝えたかったことです。

ただし、各コマンド(特にcalc)には、他にも興味深いヒントがいくつかあります。マニュアルを読むことをお勧めします。

man calc

man expr

よろしく


11コメント、あなたのコメントを残してください

コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。

  1.   エラヴ

    非常に便利ですが、数学の計算にBashを使用するのは間違いなく良くありませんが、小数は数えます:)

    1.    和田

      elavさん私たちはまだbash計算機を持っています🙂-l引数を使用して標準の数学ライブラリを使用できます
      そんな感じ

      $ echo "(4/8)+(6/9)" | bc -l
      1.166666666666666666666666

      ha

      1.    エラヴ

        ????

      2.    エリオタイム3000

        優秀な。 このようにして、純粋なX11を使用するときにXCalcをインストールする手間を省きます。

      3.    KZKG ^我愛羅

        ああ、これは知らなかった、すごい!

  2.   クロウエリオール

    おかげで、それは非常に便利です😉

    1.    KZKG ^我愛羅

      ありがとう^ _ ^

  3.   ノクトゥイド

    ありがとうございました。 システム計算機は、基本的な操作の競争相手です。

    1.    KZKG ^我愛羅

      私たちを読んでくれてありがとう🙂

  4.   ホアキン

    良いヒント!

  5.   ペドロララ

    私はそれが好きではなかった