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.   佩德罗·拉拉

    我不喜欢它