相关文章推荐
腹黑的柳树  ·  將數據從Splunk內嵌至 Azure ...·  12 月前    · 
讲道义的针织衫  ·  飞猪 - 开放平台·  1 年前    · 
茫然的黑框眼镜  ·  Intent.GetParcelableAr ...·  1 年前    · 
刀枪不入的钥匙扣  ·  换肤功能(scss、css变量)-腾讯云开发 ...·  1 年前    · 
温暖的剪刀  ·  ThrottleStop教程 - 知乎·  1 年前    · 
Code  ›  linux下执行数学运算 (expr/bc/方括号/awk)开发者社区
数学 linux社区 awk 方括号
https://cloud.tencent.com/developer/article/1656598
性感的炒饭
1 年前
生信编程日常
0 篇文章

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

前往专栏
腾讯云
开发者社区
文档 意见反馈 控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
发布
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
生信编程日常
首页
学习
活动
专区
工具
TVP 最新优惠活动
返回腾讯云官网
社区首页 > 专栏 > 生物信息学、python、R、linux > linux下执行数学运算 (expr/bc/方括号/awk)

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

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

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

$ expr 1 + 2
3

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

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

$ expr 5 \* 2
10

写在脚本中:

var1=10
var2=20
var3=$(expr $var2 / $var1)
echo The result is $var3
2. 方括号

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

$ var=$[1 + 2]
$ echo $var
3

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

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

$ 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

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

# 基础运算:
$ echo '10 3' | awk '{print $1/$2}'
3.33333
$ echo '10 3' | awk '{print $1 * $2}'
$ a=10
$ b=3
$ echo | awk "{print $a/$b}"  # 注意此处必须是双引号
 
推荐文章
腹黑的柳树  ·  將數據從Splunk內嵌至 Azure Data Explorer - Azure Data Explorer | Microsoft Learn
12 月前
讲道义的针织衫  ·  飞猪 - 开放平台
1 年前
茫然的黑框眼镜  ·  Intent.GetParcelableArrayListExtra Method (Android.Content) | Microsoft Learn
1 年前
刀枪不入的钥匙扣  ·  换肤功能(scss、css变量)-腾讯云开发者社区-腾讯云
1 年前
温暖的剪刀  ·  ThrottleStop教程 - 知乎
1 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号