1柔吼、declare聲明變量類(lèi)型
命令格式:declare [+/-][選項(xiàng)] 變量名烫葬;
參數(shù)說(shuō)明:
- -:給變量設(shè)定類(lèi)型屬性;
- +:取消變量的類(lèi)型屬性捡需;
注意:取消命令是+办桨,設(shè)定命令是-,和我們通常的認(rèn)知相反U净浴D刈病!
選項(xiàng)說(shuō)明:
- i:將變量聲明為整數(shù)型(integer)饰剥;
- x:將變量聲明為環(huán)境變量殊霞;
- p:顯示指定變量的被聲明的類(lèi)型;
聲明變量num1汰蓉,執(zhí)行 declare -p num1 查看num1的類(lèi)型绷蹲。
給變量設(shè)定整數(shù)類(lèi)型 declare -i num1,再次查看num1的類(lèi)型顾孽。
給變量取消整數(shù)類(lèi)型 declare +i num1祝钢,再次查看num1的類(lèi)型。
整個(gè)過(guò)程如下圖所示:
2若厚、數(shù)值運(yùn)算
2.1拦英、方法1
使用declare為結(jié)果變量定義類(lèi)型。
[root@VM-0-8-centos sh]# aa=11
[root@VM-0-8-centos sh]# bb=22
[root@VM-0-8-centos sh]# declare -i cc=$aa+$bb
[root@VM-0-8-centos sh]# echo $cc
此種方式不支持小數(shù)運(yùn)算
2.2测秸、方法2
使用expr或let數(shù)值運(yùn)算工具龄章。
注意:命令$(expr $aa + $bb)之中,+左右必須要有空格乞封, let與expr一樣W鋈埂!肃晚!
此種方式不支持小數(shù)運(yùn)算
2.3锚贱、方法3
使用$((運(yùn)算式)) 或$[運(yùn)算式]。
強(qiáng)烈推薦使用這種方式9卮E±取!
此種方式不支持小數(shù)運(yùn)算
3晋修、運(yùn)算符優(yōu)先級(jí)
優(yōu)先級(jí) | 運(yùn)算符 | 說(shuō)明 |
---|---|---|
13 | -, + | 單目負(fù)吧碾、單目正 |
12 | !, ~ | 邏輯非、按位取反或補(bǔ)碼 |
11 | *,/, % | 乘墓卦、除倦春、取模 |
10 | +, - | 加、減 |
9 | << , >> | 按位左移、按位右移 |
8 | <=, >=, < , > | 小于或等于睁本、大于或等于尿庐、小于、大于 |
7 | == , != | 等于呢堰、不等于 |
6 | & | 按位與 |
5 | ^ | 按位異或 |
4 | | | 按位或 |
3 | && | 邏輯與 |
2 | || | 邏輯或 |
1 | =,+=,-=,*=,/=,%=,&=, ^= ,|=, <<=, >>= | 賦值抄瑟、運(yùn)算且賦值 |
執(zhí)行下方計(jì)算命令:
echo $(( (11+3)*3/2 ))
echo $(( 14%3 ))
echo $(( 1&&0 ))
echo $(( 1||0 ))
結(jié)果如下圖所示: