【Linux】shell脚本实战-使用shell进行数学运算
文章目錄
- 前言
- 一. 數據運算命令介紹
- 1. let的使用
- 2. [ ] 的使用
- 3. (())的使用
- 4. expr的使用
- 5. bc的使用
- a. 基礎運算
- b. **設置小數精度: scale**
- c. 二進制和十進制轉換
- d. 計算平方根
- 二. 獲取字符串的長度
- 總結
前言
上篇文章我們探討了shell腳本的基礎和變量, 在學習變量的時候我們探討了環境變量和用戶自定義變量,以及一些特殊的用法。無論使用哪種語言都少不了進行算術操作,今天我們來看看如何使用shell腳本進行數學運算
一. 數據運算命令介紹
在shell環境中,我們可以使用的數據運算命令有:
- let
- (())
- [ ]
- expr
- bc
1. let的使用
自加操作 let n++
自減操作 let n–
簡寫形式: let no +=6 等同于 let no = no +6
let no-=6 等同于 let no = no - 6
2. [ ] 的使用
[root@ecs-c13b ~]# result=$[ 1 + 2 ] [root@ecs-c13b ~]# echo $result 3 [root@ecs-c13b ~]# NO1=5 [root@ecs-c13b ~]# result=$[ $NO1 + 5 ] [root@ecs-c13b ~]# echo $result 10 [root@ecs-c13b ~]#3. (())的使用
[root@ecs-c13b ~]# result=$((6+5)) [root@ecs-c13b ~]# echo $result 114. expr的使用
[root@ecs-c13b ~]# result=`expr 3 + 4`[root@ecs-c13b ~]# echo $result 7 [root@ecs-c13b ~]# [root@ecs-c13b ~]# result=$(expr $NO1 + 5)[root@ecs-c13b ~]# echo $result 10 [root@ecs-c13b ~]# [root@ecs-c13b ~]# expr 3 \* 5 15這里的* 用\做轉義。[root@ecs-c13b ~]# expr 3 \+ 5 85. bc的使用
bc是一個高級數據運算工具, 這個工具包含了計算器的很多選項和功能。
a. 基礎運算
[root@ecs-c13b ~]# echo "4 * 0.5" |bc 2.0 [root@ecs-c13b ~]# echo "$NO1 * 0.5" |bc2.5b. 設置小數精度: scale
[root@ecs-c13b ~]# echo "scale=2;3/8"| bc .37 [root@ecs-c13b ~]# echo "scale=2;3/7"| bc .42 [root@ecs-c13b ~]# echo "scale=2;3/10"| bc .30c. 二進制和十進制轉換
[root@ecs-c13b ~]# no=10
[root@ecs-c13b ~]# echo KaTeX parse error: Expected 'EOF', got '#' at position 24: …oot@ecs-c13b ~]#? echo "obase=2;no" |bc
1010
十進制
[root@ecs-c13b ~]# no=10000011110000
[root@ecs-c13b ~]# echo $no
10000011110000
[root@ecs-c13b ~]# echo “obase=10; ibase=2;$no”|bc
8432
d. 計算平方根
[root@ecs-c13b ~]# echo “sqrt(100)” |bc
10
二. 獲取字符串的長度
方法一:
[root@ecs-c13b ~]# test=zmgaosh1234567 [root@ecs-c13b ~]# echo $test zmgaosh1234567 [root@ecs-c13b ~]# length=${#test} [root@ecs-c13b ~]# echo $length 14方法二:
[root@ecs-c13b ~]# expr length $test 14總結
數學運算在shell腳本中占的比重不多,大部分都可以使用命令查出結果,著實有需要計算的才考慮使用數學運算符。
技術這東西就是這樣,你知道了,用不到就放在那,用到了就隨時調取。
總結
以上是生活随笔為你收集整理的【Linux】shell脚本实战-使用shell进行数学运算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java利用poi添加多张图片到word
- 下一篇: QuickBooks 2016 for