Expr和calc命令:在終端中求解數學表達式

我是一直在編寫腳本的人之一 打壞 解決日常情況(破解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命令

與前一個不同,該數字在小數方面非常精確,例如:

calc 15 / 4

它會告訴我們:3.75

這是帶有幾個示例的屏幕截圖:

截圖計算

與 expr 不同,當我們使用 calc 時,每個字符之間最好沒有空格,也就是說,數字和符號之間沒有空格,就像您在上圖中看到的那樣。 就像他們不需要在 * 之前添加 \ 一樣

好吧,這基本上就是我想告訴你的。

但是,對於每個命令(尤其是calc),還有一些其他有趣的提示,我建議您閱讀手冊:

man calc

man expr

問候


11條評論,留下您的評論

發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  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 ^ Gaara 他說:

        哦,我不知道這個,太棒了!

  2.   小丑 他說:

    謝謝,這很有用😉

    1.    KZKG ^ Gaara 他說:

      謝謝^ _ ^

  3.   夜光 他說:

    謝謝。 系統計算器一直是基本操作的競爭者。

    1.    KZKG ^ Gaara 他說:

      感謝您閱讀我們🙂

  4.   華金 他說:

    好提示!

  5.   佩德羅·拉拉 他說:

    我不喜歡