從零開(kāi)始學(xué)習(xí)Linux(三十七):Shell基礎(chǔ)之bash運(yùn)算符

1、declare聲明變量類(lèi)型

命令格式:declare [+/-][選項(xiàng)] 變量名;
參數(shù)說(shuō)明:

  • -:給變量設(shè)定類(lèi)型屬性;
  • +:取消變量的類(lèi)型屬性;

注意:取消命令是+,設(shè)定命令是-,和我們通常的認(rèn)知相反?。?!

選項(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一樣?。?!

此種方式不支持小數(shù)運(yùn)算

2.3、方法3

使用$((運(yùn)算式)) 或$[運(yùn)算式]。

強(qiáng)烈推薦使用這種方式?。?!

此種方式不支持小數(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é)果如下圖所示:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容