Bash 初学者系列 5:在 bash 中进行数学运算
在编写 bash 脚本的时候,经常会遇到需要计算数学结果的情况,比如需要计算磁盘剩余空间、文件大小、密码到期时间、主机数量、网络带宽等。
今天我们将介绍在 bash 中使用运算符来执行算术运算。
总体来说,bash 中的算术运算符包括以下这些:
运算符 | 描述 |
+ | 加法运算 |
- | 减法运算 |
* | 乘法运算 |
/ | 整除 |
% | 求余 |
** | 幂运算 |
在bash脚本中执行加法和减法
为了便于演示,我们创建一个名为 addition.sh 的脚本文件,添加两个文件的大小(以字节 byte 为单位),并输出。
为此,大家需要了解 bash 脚本中的参数,还有 cut 以及 du 命令。
du 命令计算文件的大小,其输出包括两列,分别为文件大小和文件名,cut 命令取出其中的第一列(即文件大小);du 命令的输出通过管道重定向传递给 cut 命令。
脚本如下所示:
在运行上述脚本的时候,需要给出两个文件名作为参数。比如,我们将文件 /etc/passwd 和 /etc/group 作为参数来运行该脚本:
在 addition.sh 脚本中最重要的一行为:
上面代码使用 运算符 + 将两个数字 $fs1 和 $fs2 相加。这里需要注意的是,算术表达式需要使用双括号将其括起来:
也可以使用减号运算符 - 来进行减法运算。比如,下面的代码,其结果将为 7:
执行乘法和除法
我们创建一个名为 giga2mega.sh 的脚本文件,用于将 GB 转为 MB,如下所示:
下面我们来执行一下,看看 4GB 相当于多少 MB:
在这里,我们使用了乘法(*)运算符将 GB 数乘以1024,得到等效的兆字节数:
类似的,将 GB 转为 KB 也是一样的做法:
除法运算符 / 用于两个数相除,比如下面例子:
注意,这里是整除,所有的小数部分会丢失。比如,计算 5 除以 2,其结果为 2:
要实际计算两个数相除的结果(获取十进制的结果),可使用 bc 命令,比如,还是计算 5 除以 2,可参照如下代码:
另外,在其他算术运算符中也可以使用 bc 命令:
使用幂和余数(模)
下面我们使用幂运算符 ** 进行求幂运算。首先创建一个名为 power.sh 的脚本,接受两个数字作为参数:a 和 b,然后计算 a 的 b 次幂,如下代码所示:
我们来运行一下:
计算余数使用运算符 %,如下所示:
其结果为 2,大家可以运行试一下。
相关文章
- Jgit的使用笔记
- 利用Github Action实现Tornadofx/JavaFx打包
- 叹息!GitHub Trending 即将成为历史!
- 微软软了?开源社区讨论炸锅,GitHub CEO 亲自来答
- GitHub Trending 列表频现重复项,前后端都没去重?
- Photoshop Elements 2021版本软件安装教程(mac+windows全版本都有)
- (ps全版本)Photoshop 2020的安装与破解教程(mac+windows全版本都有)
- (ps全版本)Photoshop cc2018的安装与破解教程(mac+windows全版本,包括2023
- 环境搭建:Oracle GoldenGate 大数据迁移到 Redshift/Flat file/Flume/Kafka测试流程
- 每个开发人员都要掌握的:最小 Linux 基础课
- 来撸羊毛了!Windows 环境下 Hexo 博客搭建,并部署到 GitHub Pages
- 超实用!手把手入门 MongoDB:这些坑点请一定远离
- 【GitHub日报】22-10-09 zustand、neovim、webtorrent、express 等4款App今日上新
- 【GitHub日报】22-10-10 brew、minio、vite、seaweedfs、dbeaver 等8款App今日上新
- 【GitHub日报】22-10-11 cobra、grafana、vue、ToolJet、redwood 等13款App今日上新
- Photoshop 2018 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2017 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2020 下载及安装教程(mac+windows全版本都有,包括最新的2023)
- Photoshop 2023 资源免费下载(mac+windows全版本都有,包括最新的2023)
- 最新版本Photoshop CC2018软件安装教程(mac+windows全版本都有,包括2023