1. 算术运算符
+、- ##加法(或正号)、减法(或负号)
*、/、% ##乘法、除法、取余
** ##幂运算
++、-- ##增加或减少常见格式为i++、i--
!、&&、|| ##逻辑非(取反)、逻辑与、逻辑或
<、<=、>、>= ##比较符号
==、!=、= ##相等、不等、赋值
<<、>> ##向左移位、向右移位
~、|、&、^ ##按位(取反、异或、与、或)
=、+=、-=、*=、/=、%= ##赋值运算符i=i+相当于i=i+1或i++
2. “(())”数值的运算
((i=i+1)) #这种方法为运算后赋值法,将i+1的运算结果赋值给变量i,不能直接赋值使用 echo$((i=I=1))
i=$((i+1)) #可以在"(())"前加$符,表示将表达式运算后的赋值给i
((8>7&&5==5)) #可以进行比较操作。还可以加入逻辑运算
echo $((2+1)) #直接输出结果
例:一个1到10的累加
#!/bin/bash
sum=0
for((i=1;i<=10;i++)); do
sum=$(($i+$sum))
done
echo "$(seq -s + 1 10)=$sum
"
3. let命令运算
[root@test ~]# i=2
[root@test ~]# let i=i+2
[root@test ~]# echo $i
4
4. expr命令的用法(用于判断是否为一个整数)
[root@test ~]# expr 1 + 2
3
[root@test ~]# expr 1 - 2
-1
[root@test ~]# expr 1 * 2 #*在这里为了防止和通配符冲突需要转义
2
[root@test ~]# expr 1 / 2 #expr的值为整数
0
例:一个简单的判断是否为整数
[root@test ~]# cat expr_test.sh
#!/bin/bash
#判断是否传入两个参数‘
a=$1
b=$2
[ $# -ne 2 ] && {
echo "请输入两个参数"
exit 1
}
#判断时候为整数
expr $a + $b &>/dev/null
if [ $? -ne 0 ]; then
echo "请输入两个整数"
exit 1
fi
#计算两个数
printf "a+b=$(($a+$b))
"
printf "a-b=$(($a-$b))
"
printf "a*b=$(($a*$b))
"
printf "a/b=$(($a/$b))
"
printf "a**b=$(($a**$b))
"
printf "a%b=$(($a%$b))
"
[root@test ~]# sh expr_test.sh 5 8
a+b=13
a-b=-3
a*b=40
a/b=0
a**b=390625
a=5
5. bc命令(支持小数)
[root@test ShellScripts]# echo 8.8+5|bc
13.8
[root@test ShellScripts]# echo "scale=2;8.8858/5"|bc ##保留两位小数
1.77
[root@test ShellScripts]# echo "scale=8;8.8858/5"|bc ##保留8位小数
1.77716000
6. awk命令(支持小数)
[root@test ShellScripts]# echo "232 212" |awk '{print ($1+$2)/$1}'
1.91379
7. $[]符号(不支持小数)
[root@test ShellScripts]# i=3
[root@test ShellScripts]# i=$[i+8]
[root@test ShellScripts]# echo $i
11
[root@test ShellScripts]# echo $[3/5]
0