shell脚本基础小习题(二)

shell脚本基础小习题(二)

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

思路:

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

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

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

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

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

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

grep:以行为单位读取数据的过滤工具

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

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

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J1dhF2fw-1575277908802)(C:\Users\wang\Desktop\博客实验\新建文件夹 (2)]\1575174511973.png)

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DbNeqvgr-1575277908805)(C:\Users\wang\Desktop\博客实验\新建文件夹 (2)]\1575176018799.png)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ybKqWhJ1-1575277908806)(C:\Users\wang\Desktop\博客实验\新建文件夹 (2)]\1575176286819.png)

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

6819.png)

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gnHfdrsT-1575277908807)(C:\Users\wang\Desktop\博客实验\新建文件夹 (2)]\1575176336586.png)

你可能感兴趣的:(初学)