3.1.5 bc计算
学习目标
这一节,我们从 基础知识、简单实践、小结 三个方面来学习。
基础知识
简介
bc是一种任意精度的计算语言,提供了语法结构,比如条件判断、循环等,功能是很强大的,还能进行进制转换。
常见参数-i 强制交互模式;-l 使用bc的内置库,bc里有一些数学库,对三角计算等非常实用;-q 进入bc交互模式时不再输出版本等多余的信息。
特殊变量ibase,obase 用于进制转换,ibase是输入的进制,obase是输出的进制,默认是十进制;scale 小数保留位数,默认保留0位。
简单实践
实践1-交互示例
在shell命令行直接输入bc即进入bc语言的交互模式
[root@localhost ~]# bc -l -q
4 / 3
1.33333333333333333333
3 + 4
7
5 * 8
40
exit
0
^C
(interrupt) Exiting bc.
[root@localhost ~]#
实践2 - 非交互示例
格式:echo "属性设置; 计算表达式" | bc
[root@localhost ~]# echo "scale=2; 9-8*2/5^2" | bc
8.36
[root@localhost ~]# echo "scale=2; sqrt(10)" | bc
3.16
[root@localhost ~]# echo '45.36-22.33' | bc
23.03
实践3 - 内存使用率统计
查看脚本效果
[root@localhost ~]# cat memory_info.sh
#!/bin/bash
# 功能:定制内存信息的使用率
# 版本:v0.1
# 作者:书记
# 联系:www.superopsmsb.com# 定制基础信息
temp_file='/tmp/free.txt'
hostname=$(hostname)# 获取内存信息
free -m > /tmp/free.txt
# 获得内存总量
memory_totle=$(grep -i "mem" /tmp/free.txt | tr -s " " | cut -d " " -f2)
# 获得内存使用的量
memory_use=$(grep -i "mem" /tmp/free.txt | tr -s " " | cut -d " " -f3)
# 获得内存空闲的量
memory_free=$(grep -i "mem" /tmp/free.txt | tr -s " " | cut -d " " -f4)# 定制使用比例
# 获取内存使用率
percentage_use=$(echo "scale=2; $memory_use * 100 / $memory_totle" | bc)
# 定制内存空闲率
percentage_free=$(echo "scale=2; $memory_free * 100 / $memory_totle" | bc)# 内容信息输出
echo -e "\e[31m\t${hostname} 内存使用信息统计\e[0m"
echo -e "\e[32m=========================================="
echo '内存总量: ' ${memory_totle}
echo '内存使用量: ' ${memory_use}
echo '内存空闲量: ' ${memory_free}
echo '内存使用比率: ' ${percentage_use}
echo '内存空闲利率: ' ${percentage_free}
echo "=========================================="
echo -e "\e[0m"
脚本执行后效果
[root@localhost ~]# /bin/bash memory_info.shlocalhost 内存使用信息统计
==========================================
内存总量: 3770
内存使用量: 238
内存空闲量: 3376
内存使用比率: 6.31
内存空闲利率: 89.54
==========================================
小结