算術運算符
如果要執行算術運算符,就離不開各種運算符號,和其他編程語言類似,shell也有很多算術運算符。在任何一門形式的語言中均會存在算術運算的情況,Shell常見的運算符如下所示:
| 運算符 | 含義 |
|---|---|
| + - * / % | 加 減 乘 除 求余 |
| ** | 冪運算 |
| ++ -- | 自增 自減 |
| && || ! | 與(and) 或(or) 非(取反) |
| < <= > >= == != | 小于 小于等于 大于 大于等于 等于 不等于 |
| << >> | 左移位 右移位 |
| ~ | & ^ | 按位取反 按位異或 按位與 按位或 |
| = += -= *= /= %= | 如a+=1與a=a+1相同 |
算術運算命令
| 運算命令 | 含義 |
|---|---|
| (()) | 整數運算,效率很高 |
| let | 整數運算,類似于(()) |
| expr | 整數運算,另外還有很多額外功能 |
| bc | Linux中的計算器,適合整數及小數運算 |
| $[] | 整數運算 |
| awk | 既可用于整數運算,也可用于小數運算 |
| declare | 定義變量值和屬性,-i 參數可以用于定義整型變量并進行運算 |
數值運算用法
(())用法
雙小括號常用于數值運算和數值比較,因其效率很高,用法靈活,因此是常用的運算之一。
| 示例 | 含義 | 備注 |
|---|---|---|
| ((i=i+1)) | 運算后并進行賦值,即先進行i+1計算并將該值賦值給i | 只能使用echo ((i+1)) |
| ((2>1&&8>3)) | 進行比較后再進行邏輯運算 | 常用于條件判斷 |
| echo $((4+2)) | 直接進行計算并輸出結果 |
(())用法示例
[root@localhost ~]# echo $((90-12));echo $((80+12)) # 基本運算7892[root@localhost ~]# ((a=100))[root@localhost ~]# ((a*=2))[root@localhost ~]# echo $a # 輸出運算結果200[root@localhost ~]# ((a=100+2**10-200%100)) # 復雜運算[root@localhost ~]# echo $a1124[root@localhost ~]# a=$((50**2*2+2500)) # 運算并進行賦值[root@localhost ~]# echo $a7500[root@localhost ~]# a=100[root@localhost ~]# echo $((a++));echo $((++a)) # 自增運算100102[root@localhost ~]# echo $((a**2))10404[root@localhost ~]# echo $((2==2)) # 比較運算1 # 1:代表結果為真[root@localhost ~]# echo $((2>2))0 # 0:代表結果為假
新聞熱點
疑難解答