Shell运算符
shell默认变量是字符串类型,所以变量之间做运算需要符合shell特定的规则
expr 运算式
通过expr可以计算表达式的值,注意运算式数字和符号之间必须要有空格
[root@zookeeper1 shell]# expr 2 + 3
5
# 特殊字符需要转义才能识别
[root@zookeeper1 shell]# expr 2 /* 3
expr: 语法错误
[root@zookeeper1 shell]# expr 2 \* 3
6
# 通过``将exp运算式的值赋给变量
[root@zookeeper1 shell]# result=`expr 2 + 3`
[root@zookeeper1 shell]# echo $result
5
# 通过$()将expr运算式的值赋给变量
[root@zookeeper1 shell]# result=$(expr 2 \* 3)
[root@zookeeper1 shell]# echo $result
6
$((运算式))
通过$((表达式))也可以得到运算式的值,并且特殊字符不用转义,运算式之间也可以不需要空格
[root@zookeeper1 shell]# echo $((2+3))
5
[root@zookeeper1 shell]# result=$((2*3))
[root@zookeeper1 shell]# echo $result
6
$[运算式]
通过$[运算式]也可以得到运算式的值,并且特殊字符不用转义,运算式之间也可以不需要空格,这种方式也是比较常用的
[root@zookeeper1 shell]# echo $[2+3]
5
[root@zookeeper1 shell]# result=$[2+3]
[root@zookeeper1 shell]# echo $result
5
一个简单的脚本
新建add.sh脚本,内容如下:
[root@zookeeper1 shell]# cat add.sh
#!/bin/bash
sum=$[$1+$2]
echo "sum=$sum"
执行脚本
[root@zookeeper1 shell]# ./add.sh 2 3
sum=5