shell 数值运算

declare数值运算

linux默认变量类型为字符串
declare [+/-] [选项] 变量名

'-' 给变量设定类型属性
'+' 取消变量的类型属性
'-a' 将变量声明为数组型
'-i' 将变量声明为整数型(integer)
'-x' 将变量声明为环境变量
'-r' 将变量声明为只读变量
'-p' 显示指定变量的被声明的类型;

声明自读变量

 declare -r test
 给test赋予只读属性,但是请注意只读属性会让变量不能修改,不能删除,甚至不能取消只读属性
"声明数值类型"
 >>aa=11
 >>bb=22
 >>declare -i cc=$aa+$bb

声明环境变量

 declare -x test=123
 #和export作用相似,但其实是declare命令的作用
[root@ssgao1987 ~]# movie[0]=zp
[root@ssgao1987 ~]# movie[1]=tp
[root@ssgao1987 ~]# declare movie[2]=live
[root@ssgao1987 ~]# echo ${movie}
zp
[root@ssgao1987 ~]# echo ${movie[2]}
live
[root@ssgao1987 ~]# echo ${movie[*]}
zp tp live
note: declare movie[x]=xx与movie[x]=xxx是等价的     

数值运算工具

[root@ssgao1987 ~]# aa=11
[root@ssgao1987 ~]# bb=22
[root@ssgao1987 ~]# dd=$(expr $aa + $bb) 
[root@ssgao1987 ~]# echo $dd
33
-------
#dd的值是aa和bb的和。注意"+"号左右两侧必须有空格
$((运算式))或$[运算式]
[root@ssgao1987 ~]# ff=$(($aa+$bb))  最好记的格式
[root@ssgao1987 ~]# echo $ff
33
[root@ssgao1987 ~]# gg=$[$aa+$bb]
[root@ssgao1987 ~]# echo $gg
33

shell的运算实例

[root@ssgao shell]# cat c.sh 
#!/bin/bash
a=$1
b=$2
d=$a+$b
c=`expr $a + $b`  //对变量进行加法操作结果赋给变量c 注意添加``
e=`expr $a * $b` //乘法需要进行转移操作
echo "c 的结果:${c}"
echo "d 的结果:${d}"
echo "e 的结果:${e}" 
[root@ssgao shell]# sh c.sh 2 4
c 的结果:6
d 的结果:2+4
e 的结果:8    
    
aa=$(( (11+3)*3/2 ))
虽然乘和除优先级高于加,但是通过小括号可以调整运算优先级
​
bb=$((14%3))
14不能被3整除,余数是2
​
cc=$((1&&0))
逻辑与运算只有想与的两边都是1,与的结果才是1,否则与的结果是0    

原文地址:https://www.cnblogs.com/ssgao/p/8871601.html