05 - shell的运算
2022-03-14 本文已影响0人
舍是境界
基本运算法则
- 四则运算
- 加法:num1 + num2
- 减法:num1 - num2
- 乘法:num1 * num2
- 整除:num1 / num2
- 取余数运算
- 求模:num1 % num2
算式替换
- 使用(())表达式
- 格式:$[num1 operator num2...]
- 计算结果替换表达式本身,可结合echo命令输出
echo $[1 + 1]
2
echo $((2 * 3))
6
x=15;y=3;
echo $[x+y]
18
echo $[x%2]
1
变量的自增/减等操作
简写表达式 | 完整表达式 |
---|---|
i++ | i=i+1 |
i-- | i=i-1 |
i+=2 | i=i+2 |
i-=2 | i=i-2 |
i*=2 | i=i*2 |
i/=2 | i=i/2 |
i%=2 | i=i%2 |
x=2
echo $[x+2]
4
echo $x
2
x=2
let x++;echo $x
3
echo $x
3
小数运算
- bash内建机制仅支持整数运算,不支持小数运算
echo $[3.5+2.2]
bash: 3.5+2.2: syntax error: invalid arithmetic operator (error token is ".5+2.2")
- 可以通过计算器软件bc实现小数运算
- 如果没有该软件则需要使用yum安装
- bc支持交互式和非交互式两种方式计算,scale=n可以约束小数位
bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
1.5 + 2.3
3.8
scale=2
10/2
5.00
echo "1.2+3.3;3.8*2.7"|bc
4.5
10.2
echo "scale=2;10/3"|bc
3.33
- 小数的比较
- bc支持的比较操作符:>, >=, <, <=, ==, !=
- 表达式城市则返回1,否则返回0
- bc支持的比较操作符:>, >=, <, <=, ==, !=
echo "1>2"|bc
0
echo "5>2"|bc
1
小结
- 掌握如何在shell脚本中进行整数运算
- 掌握如何在shell脚本中进行小数运算
- 掌握如何在shell脚本中进行算术比较