文章目录

序言

Linux版本:CentOS7.464位

这儿所有提及的shell都是bashshelllinux开发培训,不过推荐你可以学学zsh

LinuxShell进行数值估算的时侯,

使用expr,很麻烦,负号啊哪些的还须要转译,

使用美刀符($)加中括弧sogou pinyin linux,却只局限于整数估算,

这儿介绍一下

Linux的bc命令linux 计算器命令,它相当于Linux内建的估算器,可以估算整数,也可以进行浮点估算(小数)

你可以叫它bc估算器,也可以叫bash估算器,它就是bash外置的估算器

bc命令的基本用法

你甚至可以把bc叫做一种编程语言,它容许在命令行中输入浮点表达式,之后解释并估算该表达式,最后返回结果。bc估算器就能辨识的东东:

可以直接在命令行使用bc命令:

[dong@cwd shell]$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
12 * 3.14
37.68
8 * 3.14
25.12
quit

里面是bc估算器的欢迎界面,假如你认为多余可以使用-q参数把它除去

linux 计算器命令_linux计算命令_linux计算

浮点数的小数位数是由内建变量scale控制的。

必须将这个值设置为你希望在估算结果中保留的小数位,

否则难以得到期望的结果

[dong@cwd shell]$ bc -q
3.14 /5
0
scale=4
3.14 / 5
.6280
quit

Linux shell小数数值计算之bc命令02

scala变量的默认值是0

在scala值被设置之前linux 计算器命令,bc估算结果不包含小数位。

在将其值设置成4后,bc估算器显示的结果包含4位小数。

-q参数可以不显示bc估算器繁琐的欢迎信息。

不仅普通数字,bc估算器能够支持变量

[dong@cwd shell]$ bc -q
var1=10
var1 * 4
40
var2 = var1 / 5
print var2
2
println var2
(standard_in) 6: syntax error
quit

Linux shell小数数值计算之bc命令03

变量一旦被定义,就可以在整个bc估算器会话中使用该变量了,print句子容许你复印变量和数字。

在脚本中使用bc估算器

linux 计算器命令_linux计算命令_linux计算

如今你可能想问bc估算器是怎样在shell脚本中帮助处理小数运算的?

可以采用如下的格式在shell脚本中使用bc命令,并将返回结果赋给一个变量。

基本格式如下:

variable=$(echo "options; expression" | bc)

第一部份options容许你设置变量。假如你须要不止一个变量,可以用分号将其分开。

expression参数定义了通过bc执行的物理表达式。

OK,下边来个Demo:

[dong@cwd shell]$ vim create_base_script.sh
#!/bin/bash
# 测试在脚本中使用bc命令
# 可以用命令替换运行bc命令,燕将输出赋给一个变量,基本格式如下:
# variable=$(echo "options; expression" | bc)
# 第一部分options允许你设置变量。如果你需要不止一个变量,可以用分号将其分开。
# expression参数定义了通过bc执行的数学表达式。这里有个在脚本中这么做的例子。
var1=$(echo "scale=4; 3.44 /5" | bc)
echo The answer is $var1

这个事例将scale变量设置成4位小数,并在expression部份指定了特定的运算。运行这个脚本会形成如下输出:

是不是很神奇啊?

其实不仅被形参,哪个变量(var3)也可以用于其他运算了

看下边的事例:

[dong@cwd shell]$ vim create_base_script3.sh
#!/bin/bash
# 在bc命令中测试使用变量
var1=20
var2=3.1415
var3=$(echo "scale=4; $var1 * $var1" | bc)
var4=$(echo "scale=4; $var3 * $var2" | bc)
echo var3 = $var3
echo var4 = $var4

代码截图及运行结果如下:

这个方式适用于较短的运算,

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复