首页
运维教程
Linux基础
系统服务
系统架构
数据库
shell脚本
虚拟化
大数据
DevOps
企业案例
运维开发
python
go语言
运维安全
行业资讯
网络基础
系统安全
运维面试
学习路线
学习方法
面试题库
职场解惑
软件
运维软件
办公软件
书籍资源
技术陪跑营
重要信息
首页 运维教程shell脚本【Linux】shell脚本实战-使用shell进行数学运算

【Linux】shell脚本实战-使用shell进行数学运算

文章目录

前言
一. 数据运算命令介绍
1. let的使用
2. [ ] 的使用
3. (())的使用
4. expr的使用
5. bc的使用
a. 基础运算
b. 设置小数精度: scale
c. 二进制和十进制转换
d. 计算平方根
二. 获取字符串的长度
总结

前言

上篇文章我们探讨了shell脚本的基础和变量, 在学习变量的时候我们探讨了环境变量和用户自定义变量,以及一些特殊的用法。无论使用哪种语言都少不了进行算术操作,今天我们来看看如何使用shell脚本进行数学运算

一. 数据运算命令介绍

在shell环境中,我们可以使用的数据运算命令有:
– let
– (())
– [ ]
– expr
– bc

1. let的使用

自加操作 let n++
自减操作 let n–
简写形式: let no +=6 等同于 let no = no +6
let no-=6 等同于 let no = no – 6

2. [ ] 的使用
[root@ecs-c13b ~]# result=[ 1 + 2 ]
[root@ecs-c13b ~]# echoresult
3
[root@ecs-c13b ~]# NO1=5
[root@ecs-c13b ~]# result=[NO1 + 5 ]
[root@ecs-c13b ~]# echo $result 
10
[root@ecs-c13b ~]# 
3. (())的使用
[root@ecs-c13b ~]# result=((6+5))
[root@ecs-c13b ~]# echoresult
11
4. expr的使用
[root@ecs-c13b ~]# result=`expr 3 + 4`

[root@ecs-c13b ~]# echo $result
7
[root@ecs-c13b ~]# 
[root@ecs-c13b ~]# result=(exprNO1 + 5)

[root@ecs-c13b ~]# echo $result
10
[root@ecs-c13b ~]# 
[root@ecs-c13b ~]# expr 3 \* 5
15

这里的* 用\做转义。

[root@ecs-c13b ~]# expr 3 \+ 5
8
5. bc的使用

bc是一个高级数据运算工具, 这个工具包含了计算器的很多选项和功能。

a. 基础运算
[root@ecs-c13b ~]# echo "4 * 0.5" |bc
2.0
[root@ecs-c13b ~]# echo "$NO1 * 0.5" |bc

2.5
b. 设置小数精度: scale
[root@ecs-c13b ~]# echo "scale=2;3/8"| bc
.37
[root@ecs-c13b ~]# echo "scale=2;3/7"| bc
.42
[root@ecs-c13b ~]# echo "scale=2;3/10"| bc
.30
c. 二进制和十进制转换

[root@ecs-c13b ~]# no=10
[root@ecs-c13b ~]# echo no
10
[root@ecs-c13b ~]# echo “obase=2;
no” |bc
1010

十进制
[root@ecs-c13b ~]# no=10000011110000
[root@ecs-c13b ~]# echo no
10000011110000

[root@ecs-c13b ~]# echo “obase=10; ibase=2;no”|bc
8432

d. 计算平方根

[root@ecs-c13b ~]# echo “sqrt(100)” |bc
10

二. 获取字符串的长度

方法一:

[root@ecs-c13b ~]# test=zmgaosh1234567
[root@ecs-c13b ~]# echo test
zmgaosh1234567
[root@ecs-c13b ~]# length={#test}
[root@ecs-c13b ~]# echo $length
14

方法二:

[root@ecs-c13b ~]# expr length $test
14

总结

数学运算在shell脚本中占的比重不多,大部分都可以使用命令查出结果,着实有需要计算的才考虑使用数学运算符。
技术这东西就是这样,你知道了,用不到就放在那,用到了就随时调取。

本文链接:http://www.geekyunwei.com/1084.html

网友评论comments

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

暂无评论

Copyright © 2021 极客运维 公众号《极客运维之家》
扫二维码
扫二维码
返回顶部