1、运算符
1.1、运算符列表
符号 | 含义 |
---|
+ | 实现加法运算 |
- | 实现减法运算 |
* | 实现乘法运算 |
/ | 实现除法运算 |
% | 实现取余运算 |
^或者** | 实现幂次运算 |
&& | 实现逻辑与运算,前一个命令执行失败就不再执行后面一个 |
|| | 实现逻辑或运算,前一个命令执行成功就不再执行后面一个 |
- 上面的命令,除了&&和||之外不能直接使用,需要结合运算命令一起使用
1.2、示例代码
rlk@rlk:shell$ cat ./test.sh
let para=8+3
echo ${para}
let para=8-3
echo ${para}
let para=8*3
echo ${para}
let para=8/3
echo ${para}
let para=8%3
echo ${para}
let para=8**3
echo ${para}
ls /home/rlk/11 || mkdir -p /home/rlk/11
ls /home/rlk/11 || mkdir -p /home/rlk/11
rlk@rlk:shell$
rlk@rlk:shell$
rlk@rlk:shell$
rlk@rlk:shell$ ./test.sh
11
5
24
2
2
512
2、运算命令
2.1、运算命令列表
运算命令 | 用法 |
---|
awk | 可以进行浮点运算 |
let | 只能进行整数运算 |
bc | 可以进行浮点数运算 |
expr | 只能进行整数运算,一般用于判断传参是否是数字 |
$(()) | 进行整数运算 |
$[] | 进行整数运算 |
2.2、示例代码
#!/bin/bash
echo "*******************awk*************************"
num1=111
num2=33
awk -v para1=$num1 -v para2=$num2 'BEGIN{print 8/3, 2^9, para1+para2}'
echo "*******************bc*************************"
echo "2+3" | bc
echo "scale=2;8/3" | bc -l
echo "scale=2;${num1} / ${num2}" | bc -l
echo "*******************expr*************************"
expr 22 + 33
echo $?
num1=0
num2=0
expr ${num1} + ${num2}
echo $?
expr 22 + a
echo $?
expr ${num1} + ${num2} + 1
echo $?
echo "*******************let*************************"
num1=111
num2=33
i=3
let i++
echo $i
let i=${num1}+${num2}
echo $i
let i+=12
echo $i
echo "*******************\$(())*************************"
echo $((num1*num2))
echo "*******************\$[]*************************"
echo $[num1*num2]
2.3、运行结果
rlk@rlk:shell$ ./test.sh
*******************awk*************************
2.66667 512 144
*******************bc*************************
5
2.66
3.36
*******************expr*************************
55
0
0
1
expr: non-integer argument
2
1
0
*******************let*************************
4
144
156
*******************0*************************
3663
*******************0*************************
3663
rlk@rlk:shell$ ./test.sh
*******************awk*************************
2.66667 512 144
*******************bc*************************
5
2.66
3.36
*******************expr*************************
55
0
0
1
expr: non-integer argument
2
1
0
*******************let*************************
4
144
156
*******************$(())*************************
3663
*******************$[]*************************
3663