前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux下执行数学运算 (expr/bc/方括号/awk)

linux下执行数学运算 (expr/bc/方括号/awk)

作者头像
生信编程日常
发布2020-07-07 09:56:14
2.3K0
发布2020-07-07 09:56:14
举报
1. expr

expr命令可以在命令行中处理数学表达式,但是会比较麻烦。

代码语言:javascript
复制
$ expr 1 + 2
3

expr命令能够识别少数的数学和字符串操作符:

需要注意的是对于那些容易被shell错误解释的字符,需要转义:

代码语言:javascript
复制
$ expr 5 \* 2
10

写在脚本中:

代码语言:javascript
复制
var1=10
var2=20
var3=$(expr $var2 / $var1)
echo The result is $var3
2. 方括号

在bash中,在将一个数学运算结果赋给某个变量时,可以用美元符和方括号($[ operation ])来实现。

代码语言:javascript
复制
$ var=$[1 + 2]
$ echo $var
3

另外,在使用方括号来计算公式时,不需要转义。

但是这种方法不能运算小数:

代码语言:javascript
复制
$ var1=$[7/2]
$ echo $var1
3
3. bc

bash计算器实际上是一种编程语言,它允许在命令行中输入浮点表达式,然后解释并计算该表达式,最后返回结果。bash计算器可以识别以下几种:

  1. 数字(整数和浮点数)
  2. 变量(简单变量和数组)
  3. 注释(以#或C语言中的/* */开始的行)
  4. 表达式
  5. 编程语句(例如if-then语句)
  6. 函数

输入bc即可运行:

如上所示,在除法运算中,在scale值被设置前,bash计算器的计算结果不包含小数位。在把sclae设置成3后,bash计算器显示的结果包含3位小数。

bc的变量运算和输出:

4. awk

作为一个基本什么都能做的工具,数学运算肯定也是可以的:

代码语言:javascript
复制
# 基础运算:
$ echo '10 3' | awk '{print $1/$2}'
3.33333

$ echo '10 3' | awk '{print $1 * $2}'
30

# 变量
$ a=10
$ b=3
$ echo | awk "{print $a/$b}"  # 注意此处必须是双引号
3.33333


# 指定小数位数:
$ echo $a $b | awk '{printf "%.2f\n", $1/$2}' # 保留两位小数
3.33
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. expr
  • 2. 方括号
  • 3. bc
  • 4. awk
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档