shell之数学运算
((i=$j+$k))???? 等價于 i=`expr $j + $k`
((i=$j-$k))???? 等價于 i=`expr $j -$k`
((i=$j*$k))???? 等價于 i=`expr $j \*$k`
((i=$j/$k))???? 等價于 i=`expr $j /$k`
Let expressions?執(zhí)行一個或多個表達式。表達式中的變量前不必有$.如果表達式中包含了空格或其他特殊字符,則必須引起來。
例:let “I = I + 1” 或 let i=i+1
?
算術運算符指的是可以在程序中實現(xiàn)加、減、乘、除等數(shù)學運算的運算符。Shell中常用的數(shù)學運算符如下所示。
+:對兩個變量做加法。
-:對兩個變量做減法。
*:對兩個變量做乘法。
/:對兩個變量做除法。
**:對兩個變量做冪運算。
%:取模運算,第一個變量除以第二個變量求余數(shù)。
+=:加等于,在自身基礎上加第二個變量。
-=:減等于,在第一個變量的基礎上減去第二個變量。
*=:乘等于,在第一個變量的基礎上乘以第二個變量。
/=:除等于,在第一個變量的基礎上除以第二個變量。
%=:取模賦值,第一個變量對第二個變量取模運算,再賦值給第一個變量。
在使用這些運算符時,需要注意到運算順序的問題。例如輸入下面的命令,輸出1+2的結果。
echo 1+2
Shell并沒有輸出結果3,而是輸出了1+2。
總結:
在shell中有幾種方法可以進行數(shù)學運算。
1,用expr改變運算順序。可以用echo `expr 1 +2`來輸出1+2的結果,用expr表示后面的表達式為一個數(shù)學運算。需要注意的是,`并不是一個單引號,而是“Tab”鍵上面的那個符號。
2,用let指示數(shù)學運算??梢韵葘⑦\算的結果賦值給變量b,運算命令是b=let 1 + 2。然后用echo$b來輸出b的值。如果沒有l(wèi)et,則會輸出1+2。
3,用$[]表示數(shù)學運算。將一個數(shù)學運算寫到$[]符號的中括號中,中括號中的內容將先進行數(shù)學運算。例如命令echo$[1+2],將輸出結果3。
4,雙小括號(()),$((expression)) 和`expr expression`效果相同, 計算數(shù)學表達式exp的數(shù)值,雙括號中的變量可以不使用$符號前綴。
(1) let var=算術表達式
(2) var=$[算術表達式]
(3) var=$((算術表達式))
(4) var=$(expr arg1 arg2 arg3 …) 乘法時要轉譯* ,即\*
(5) declare –i var = 算術表達式
(6) echo ‘算術表達式’ | bc (丟給計算機進行處理)
(7) ((var=算術表達式))
(8) var=`expr arg1 arg2 arg3`
expr表達式時表達式和運算符之間要有空格,即2 + 2,不能是2+2
例子:
let a=1+1
b=$[2+2]
c=$((3+3))
d=$(expr 4 + 4)
declare -i e=5+5
f=`echo "1+2"|bc`
g=`expr 2 + 3`
((h=3 + 4))
總結
以上是生活随笔為你收集整理的shell之数学运算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机收藏夹位于哪个磁盘,win10收藏
- 下一篇: 【科普贴】MOS管开关原理及应用详解