美文网首页
如何在Shell中进行数学运算

如何在Shell中进行数学运算

作者: aneirin | 来源:发表于2020-07-25 17:03 被阅读0次

平时工作中需要写一些脚本完成服务器性能监控、动态配置启动脚本等,避免不了在Bash中进行数学运算,本文介绍几种常见的数学运算方法:
整数运算
Bash独立支持三种方法来完成整数运算
1,let

aneirin@host-1:~$ echo $value
3
aneirin@host-1:~$ let value=$value+1;echo $value
4

使用help let,可以查看let的帮助信息
2,declare

aneirin@host-1:~$ declare -i a=2 b=3 c=a*b
aneirin@host-1:~$ echo $a,$b,$c
2,3,6

这种方法使用较少
3,算术扩展即“$(())”

在Bash中可以使用“((...))”做数学运算,“$(( 数学表达式 ))”返回结果。

aneirin@host-1:~$ value=3
aneirin@host-1:~$ echo  $((value+4))
7
aneirin@host-1:~$ ((value++))
aneirin@host-1:~$ echo $value
4

除了上面的三种Bash内置的数学计算方法外,还可以使用“expr”

aneirin@host-1:~$ expr 1+2
1+2
aneirin@host-1:~$ expr 1 + 2
3
aneirin@host-1:~$ expr 3 * 2
expr: non-integer argument
aneirin@host-1:~$ expr 3 \* 2
6

我不太喜欢expr,操作符和操作数要有空格,乘号需要转义,不友好。
浮点运算
上面介绍的方法仅能完成简单的整数运算,如果要实现带有小数点的运算,就需要依赖外部命令了,这里也介绍三种,
1,awk

aneirin@host-1:awk "BEGIN {print 100/3}"
33.3333
aneirin@host-1:awk "BEGIN {x=100/3; y=6; z=x*y; print z}"
200
aneirin@host-1:awk "BEGIN {printf \"%.2f\n\", 100/3}"
33.33

如果操作数是负数,注意操作数和操作符之间要有空格,

aneirin@host-1: awk "BEGIN {print -8.4 - -8}"
-0.4

2,printf

aneirin@host-1: printf %.3f "$((10**3 * 2/3))"
666.000
aneirin@host-1: printf %.1f "$((10**3 * 2/3))e-3"
0.7
aneirin@host-1: printf %.5f "$((10**3 * 2/3))e-3"
0.66600

3,bc

aneirin@host-1: echo "3.4+7/8-(5.94*3.14)" | bc
-15.25
aneirin@host-1: bc <<< "3.4+7/8-(5.94*3.14)" 
-15.25

bc命令功能非常的丰富,如果想更近一步了解,可访问使用bc完成复杂计算
感谢你的阅读,希望这篇文章能帮到你!

相关文章

  • 如何在Shell中进行数学运算

    平时工作中需要写一些脚本完成服务器性能监控、动态配置启动脚本等,避免不了在Bash中进行数学运算,本文介绍几种常见...

  • Linux_Shell脚本编程之运算符

    基本介绍 学习如何在shell脚本编程中进行各种运算操作 基本语法 1、”[运算符]“ 或者 expr m + n...

  • 初识函数

    1、基本用法 1.1 公式: 是EXCEL工作表中进行数值计算的等式 ,简单的数据的加减乘除的运算,如=A1+A2...

  • 【现学现忘&Shell基础】— 20.Shell的运算符

    1、Shell中数值运算的方法 在Shell中所有变量的默认类型是字符串型,那如果我需要进行数值运算,可以采用以下...

  • 在脚本中进行数字运算

    linux 的数字运算 linux 提供以下几种数字运算的方式 expr [] 通过方括号将数字运算结果赋值给变量...

  • 【linux编程】生信编程-shell脚本编程-数学运算

    shell编程 Shell 脚本中的数学运算 bash shell 的基础运算主要有4种形式: $(( expre...

  • Shell 学习

    shell 变量 shell 参数传递 shell 数组 shell 运算符 shell echo 命令 prin...

  • Shell 概述

    学习 Shell 主要包括的内容: Shell 脚本入门 Shell 变量 Shell 内置命令 Shell 运算...

  • Shell 教程

    Shell 变量 Shell 传递参数 Shell 数组 Shell 基本运算符 Shell echo 命令 Sh...

  • Shell脚本入门 [II.Shell运算符]

    Shell 基本运算符 Shell 支持的运算符包括算数运算符关系运算符布尔运算符字符串运算符文件测试运算符 算数...

网友评论

      本文标题:如何在Shell中进行数学运算

      本文链接:https://www.haomeiwen.com/subject/anzplktx.html