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.    eliotime3000 他說:

        優秀的。 這樣,我避免了在使用純X11時安裝XCalc的麻煩。

      3.    KZKG ^ Gaara 他說:

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

  2.   小丑 他說:

    謝謝,這很有用😉

    1.    KZKG ^ Gaara 他說:

      謝謝^ _ ^

  3.   夜光 他說:

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

    1.    KZKG ^ Gaara 他說:

      感謝您閱讀我們🙂

  4.   華金 他說:

    好提示!

  5.   佩德羅·拉拉 他說:

    我不喜歡