相加建加双小括号
运算符列表
运算符优先级
$()和$(())
数值运算$(())
a=$(pwd):这个是将系统命令的执行结果放到变量中去,如果a=pwd直接赋值,那么最后a是一个字符串pwd
a=$((10%3)):就是把10%3之后的算术结果赋值给a
采用$((表达式))的方式进行数值计算。
表达式中的优先级跟常见高级语言没什么区别
数值运算:
方法一:(使用declare命令)
aa=11
bb=22
declare -i cc=$aa+$bb
方法二:(expr或let数值运算工具)
dd=$(expr $aa + $bb) #dd的值是aa和bb的和。注意“+”号左右两侧必须有空格。
方法三:(let运算符)
“$((运算式))”或“$[运算式]” ff=$(($aa+$bb)) 或 gg=$[$aa+$bb]
shell支持的运算符
运算符。。。。。
expr或let数值运算工具
运算符和优先级
运算符优先级
ff=$(($aa+$bb)) 常用
expr数值运算工具
dd=$(expr $aa + $bb)
operator
数值运算方法1:
declare -i
aa=11
bb=22
declare -i cc=$aa+$bb
echo $cc
数值运算方法2:expr或let数值运算工具
aa=11
bb=22
dd=$(expr $aa + $bb) #+号左右两侧必须有空格
echo $dd
数值运算方法3:"$((运算式))"或"$[运算式]"
aa=11
bb=22
ff=$(($aa+$bb))
echo $ff
gg=$[$aa+$bb]
优先级 运算符 说明
13 -,+ 单目负、单目正
12 !,~ 逻辑非、按位取反或补码
11 *,/,% 乘、除、取模
10 +,- 加、减
9 <<,>> 按位左移、按位右移
8 < =,>=,<,> 小于或等于、大于或等于、小于、大于
7 ==,!= 等于、不等于
6 & 按位与
5 ^ 按位异或
4 | 按位或
3 && 逻辑与
2 || 逻辑或
1 =,+=,-=,*=,/=,%=,&=,
^=,|=,<<=,>>= 赋值、运算且赋值
举例:
yy=$(((4+9)*3/5))
echo $yy
yy=$(((4+9)*3%5))
echo $yy
cc=$((1&&0))
echo $cc
cc=$((1||0))
echo $cc
运算符优先级
数值运算方法1:declare -i
aa=11
bb=22
declare -i cc=$aa+$bb
echo $cc
数值运算方法2:expr或let
aa=11
bb=22
dd=$(expr $aa + $bb) // +号左右两侧必须有空格
echo $dd
aa=11
bb=22
let ee=aa+bb
echo $ee
数值运算方法3:$((运算式))或$[运算式]
aa=11
bb=22
ff=$(($aa+$bb))
echo $ff
gg=$[$aa+$bb]
运算方法三(最推荐使用)
进行数值运算方法二:用expr或let数值运算工具
注意+号左右要有空格
shell数值运算符
dd=$((expr $aa + $bb))
ee=$(($aa+$bb))
ff=$[$aa+$bb]
运算符图解
运算符,最简单的 双小括号
变量声明运算