您好,登錄后才能下訂單哦!
變量的數值計算常用的有如下幾個命令:
(())用法:
如果要執行簡單的整數運算,只需要特定的算術表達式用"$(("和"))"括起來即可
shell的算術運算符號常置于"$(("......"))"的語法中。這一語法如同雙引號功能,除了內嵌雙引號無需轉義
運算符 | 意義 |
++ -- | 增加及減少,可前置也可放在結尾 |
+ - ! ~ | 一元的正號與負號;邏輯與位的取反 |
* / % | 乘法,除法,與取余 |
+ - | 加法,減法 |
<<= >> = | 比較符號 |
== !== | 相等與不相等 |
<< >> | 向左位移 向右位移 |
& | 位的AND |
^ | 位的異或 |
| | 位的或 |
&& | 邏輯的AND |
|| | 邏輯的OR |
?: | 條件表達式 |
= += -= *= /= %= &= ^= <<= >>= |= | 賦值運算符a+=1 都相當a=a+1 |
范例1:shell的算術運算實例如下:
[root@XCN ~]# ((a=1+2**3-4%3)) [root@XCN ~]# echo $a 8 [root@XCN ~]# b=$((a=1+2**3-4%3)) [root@XCN ~]# echo $b 8 [root@XCN ~]# echo $((a=1+2**3-4%3)) 8
提示:上面是三種不同的變量計算定義和使用的方式
[root@XCN ~]# echo $((a+=1)) #相當a=a+1 9 [root@XCN ~]# echo $((a++)) 9 [root@XCN ~]# echo $((a--)) 10 [root@XCN ~]# echo $((3>2)) #比較大小 1 [root@XCN ~]# echo $((3<2)) #比較大小 0
提示:
**為冪運算:%為取模運算(就是除法當中取余數),加減乘除
上面涉及到的參數變量必須為整數(整型),不能是小數(符點數)或者字符串后面的bc命令可以進行浮點數運算,但一般較少用到,下文會講解。提醒下,你可以直接在shell腳本中使用上述命令進行計算。
echo $((a++))和echo $((a--))表示先輸出a自身的值,然后在進行++--的運算,echo $((++a)和
$((--a))表示先進行++ --的運算,在輸出a自身的值
記憶方法:變量a在前,表達式的值為a,然后a自增或自減,變量a在符號后,表達式值自增或自減,然后a值自增或自減
范例2:--,++在變量前后的舉例理解:
[root@XCN ~]# echo $((3--2)) 5 [root@XCN ~]# echo $((3==2)) 0
范例3:定義變量計算的例子
[root@XCN ~]# xcn=99 [root@XCN ~]# echo $(($xcn + 1)) 100 [root@XCN ~]# echo $(( $xcn + 1 )) 100 [root@XCN ~]# xcn=$(( $xcn + 1 )) #還可以賦值給變量然后輸出變量 [root@XCN ~]# echo $xcn 100 #提示(())中的變量也可以去掉$符號 [root@XCN ~]# unset xcn [root@XCN ~]# xcn=99 [root@XCN ~]# echo $((xcn+1)) 100
范例4:各種(())的計算命令行執行例子:
[root@XCN ~]# echo $((100/5)) #除法 取商數 20 [root@XCN ~]# echo $((100/5)) 20 [root@XCN ~]# echo $((100+5)) 105 [root@XCN ~]# echo $((100*5)) 500 [root@XCN ~]# echo $((100-5)) 95 [root@XCN ~]# echo $((100**5)) #冪 10000000000 [root@XCN ~]# echo $((100%5)) #取模,余數 0
范例5:各種(())運算的shell腳本例子
#!/bin/bash a=6 b=2 echo "a-b =$(($a-$b))" echo "a+b =$(($a+$b))" echo "a*b =$(($a*$b))" echo "a/b =$(($a/$b))" echo "a**b =$(($a**$b))" echo "a%b =$(($a%$b))" 執行結果如下: [root@XCN day2]# sh jisuan.sh a-b =4 a+b =8 a*b =12 a/b =3 a**b =36 a%b =0
范例6:實踐考試題,內容如下:
把a,b兩個變量通過命令行腳本傳參的方式實現上面混合運算腳本的功能
a=$1 b=$2 echo "a-b =$(($a-$b))" echo "a+b =$(($a+$b))" echo "a*b =$(($a*$b))" echo "a/b =$(($a/$b))" echo "a**b =$(($a**$b))" echo "a%b =$(($a%$b))" 執行結果如下: [root@XCN day2]# sh jisuan.sh 6 2 a-b =4 a+b =8 a*b =12 a/b =3 a**b =36 a%b =0
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。