shell脚本基础小习题(二)

编写一个memusage.sh,根据Free命令的结果计算出内存占用率

思路:

1:在屏幕输出“free”先查看命令结果

shell脚本基础小习题(二)_第1张图片

2:根据给出的结果我们需要用到“total”和“free”

total:列显示系统总的可用物理内存和交换空间大小。

free:列显示还有多少物理内存和交换空间可用使用。

这里我们只看Mem(内存的使用情况)就可以。

3:我们创建脚本但是我们在free的Mem中只需要用(“total”和“free”)该怎么编写,这里我们就要用到“grep(过滤)”,管道符号(|)和awk

grep:过滤关键字相对应的行,这里我们只看“Mem”

awk:以列为单位读取数据的过滤工具

awk -F其中的(-F)部分用来指定分隔符号【为指定时,就默认以空格或制表符分隔】,这里我们看到“free”中没有分隔符号 我们就直接awk后面跟空格就可以了。

awk '{prin $2}':这是固定格式 .这里$2表示free里的total所在的那列,你想用那以列就在"$"后面写数字几。但是我们这里第一列是从Mem开始算起 不要搞混淆了。

shell脚本基础小习题(二)_第2张图片

4:我们开始要想想 改用怎么样的计算方式在shell中把占用率显示出来 不可能像我们以前用手写或用计算器那样直接敲数字计算{(135276除以1867024)再乘以100 }得出结果,用shell的数值变量运算时不支持小数运算的,我是这样想的可以先把"free"乘以100 再除以“total”也就是($a \* 100 / $b)

shell脚本基础小习题(二)_第3张图片

shell脚本基础小习题(二)

因为我现在的free变了所以结果是这

shell脚本基础小习题(二)