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
==========================================
小結