shell運算子

丁少华發表於2024-06-20

熟練掌握以上運算子能夠自如的應對linux日常shell指令碼需求。

數值運算子

只能用在數字上,不能用在其它資料型別上

算數運算子

基本

就是常見的數學用到的計算:+、-、*、/、%
需要注意的是 預設情況下,shell不會直接進行算術運算,而是把"算術符號"當做"字串"與兩個變數的值連線在了一起,形成了一個新的字串,不過有6種可以觸發算術運算

(1) 使用let命令進行算術運算,只支援整數運算。
(2) 使用expr命令進行算術運算,只支援整數運算。
(3) 使用運算語法:$[算術表示式],只支援整數運算。
(4) 使用運算語法:$((算術表示式)),只支援整數運算。
(5) 在初始化變數時,將變數定義為"整數"型別,則可直接進行整數運算。
(6) 使用bc命令進行算術運算,支援整數和小數運算。
(7) 使用awk命令進行算數運算,支援整數和小數運算。

舉個例子

# 示例:expr表示式
v1=`expr 2 + 2`
echo "兩數之和:$v1"    # 兩數之和:4
 
# 示例:$(())
v2=$((2 + 2))
echo "兩數之和:$v2"  # 兩數之和:4
 
# 示例:let 
let v3=1+2
echo "兩數之和:$v3"  # 兩數之和:3
 
 
#示例:expr表示式為乘,則需要轉義
v4=`expr 2 \* 2`
echo "兩數乘積:$v4"   # 兩數乘積:4

比較

就是比較關係的:> 、>= 、 <、 <=、 ==、 !=

其中> 、>= 、 <、 <=只能在$(())中

echo $(( 2 <= 5 ) # 輸出:1
echo [ 2 < 5 ] # 輸出:-bash: 5: No such file or directory
# 上句報錯原因:[ ] 將 < 當作輸入符

==、!=可以使用 expr表示式、$(()) 、[ ]

參考:
https://blog.csdn.net/qq_35078688/article/details/128413832
https://blog.csdn.net/u013713832/article/details/133755040
https://blog.csdn.net/oqqHuTu12345678/article/details/129257269

相關文章