Linux-Shell脚本编程-学习-4-Shell编程-操作数字-加减乘除计算

举报
DreamLife 发表于 2022/04/15 00:09:42 2022/04/15
【摘要】 对于任何一种编程语言都很重要的特性就是操作数字的能力,遗憾的是,对于shell脚本来说,这个过程比较麻烦,在shell脚本中有两种途径来进行数学运算操作。   1.expr 最开始的时候,shell提供了一个特别的命令来梳理数学表达式,expr允许在命令行上处理数学表达式,但是特别笨拙。 使用expr运算加减还是可以,但...

对于任何一种编程语言都很重要的特性就是操作数字的能力,遗憾的是,对于shell脚本来说,这个过程比较麻烦,在shell脚本中有两种途径来进行数学运算操作。

 

1.expr 最开始的时候,shell提供了一个特别的命令来梳理数学表达式,expr允许在命令行上处理数学表达式,但是特别笨拙。

使用expr运算加减还是可以,但是当遇到*号是,就会出现错误,需要用到转义字符 \来识别,同样,当你希望将数学算式的结果付给一个变量的时候,你需要使用反引号来获取ecpr命令的输出。

 

幸好,在这里,shell还有有种解决方案,使用方括号[]

2 使用方括号[]

例如:

 

var1=$[1+5]

echo $var1

 

var2=$[$var1 * 2]

echo $var2

 

这里计算就没有问题了

 

 

 

3.浮点数的解决方案

 

在shell脚本编程中,处理浮点数做常见的方法就是使用内建的bash计算机 bc

bc计算器可以识别 数字、变量、注释、表达式、编程语句、函数。

在脚本中使用bc的基本格式是 variable=`echo "options;expression" | bc

第一部分options允许你来设定变量,如果你需要设置的不止一个变量,可以用分号来分开他们。expression参数定义了通过bc执行的数学表达式。

例如

var1=`echo "scale=4;3.44/5" | bc`

echo the number is $var1

 

这种方法一般适用于啊+b的这中简单的数学运算当我们遇到复杂的运算是,就显得麻烦了,针对这个,bc命令能识别输入重定向,允许你将一个文件重定向到bc命令来处理,最好的方法就是使用内链出入重定向,允许你直接在控制台重定向数据,在shell脚本中,你可以讲输出赋给一个变量

 

variable=`bc << EOF

options

statements

expressions

EOF

`

EOF文本字符串标示了内链重定向数据的开始和结尾,记住仍需要使用反引号来讲bc命令的输出赋给变量。

 

#!/bin/bash

# an exoample for number

var1=10.46
var2=43.67
var3=33.2
var4=71

var5=`bc << EOF
scale =4
a1 = ($var1 * $var2)
b1 = ($var3 * $var4)
a1 + a2
EOF
`
echo "the final answer for this mess is $var5"

以上就是一个简单的例子

 

 

 

 

文章来源: dreamlife.blog.csdn.net,作者:DreamLife.,版权归原作者所有,如需转载,请联系作者。

原文链接:dreamlife.blog.csdn.net/article/details/52583788

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。