Linux中shell基本運算

2021-06-18 08:39:47 字數 1442 閱讀 8786

shell程式中的操作預設都是字串操作,在要執行數**算符的時候可能得到意想不到的答案:

var=1

var=$var+1

echo$var

output:

1+1從這個例子中可以看出shell字串連線的操作,需要注意的是空格。

在shell中可以使用let來指示下面是算術表示式,let表示式內變數不用加$

var=1

let "var+=1" 或let var+=1 這種寫法運算子間不能有空格 

echo$var

output: 2

這其中的let可以用(())代替,let″j=i*6+2″等價於((j=i*6+2)), 就像很多的迴圈中用法一樣

注意:let必須是完整的算術表示式,即有等號兩邊

(())、expr 可以只有等號右邊的計算,由$((...))、$(expr...)、`expr ...` 檢視返回結果

var=1

((var++)) 

檢視結果: echo $(())

echo$var

output: 2

還有一種寫法:

var=1

var=$[$var+1]

echo$var

output: 2

使用expr,需要注意的是其中的那個符號並不是單引號,而是「1」左邊的那個鍵

注意:將需要運算的表示式寫入在expr後面,保證引數與運算符號中間有空格隔開。

var=1

var=`expr $var+ 1`

echo$var

output: 2

1:在shell 中$() 與``等效。執行中間包含的命令語句,返回執行結果。

2:從效率來說let==(()) > expr >bc。let和(())執行是內建命令,使用相同的演算法。

3:let 和 expr的運算是整數運算,不包括浮點預算。

4:expr和bc是外部程式,expr的體積幾乎等於bc的1/3,執行一次裝入記憶體所消耗的時間就不一樣。

5:從運算能力來說,bc排第一位。

上面的這幾種做法都是只能處理整數運算,下面的這種做法是可以處理浮點數的:

var=1

var=`echo"scale=1;$var*2.0"|bc`  bc預設輸出整數,用scale指定小數點下位數

echo$var

output:

2.0上面的`符號跟上面的一樣,是1左邊的那個鍵,而bc是linux上面的乙個計算器,支援除位運算以外的所有執行。

另外乙個支援浮點運算的方法是awk:

var=1

var=`echo "$var1"|awk ''`

echo$var

output: 2

$ c=$(awk'begin')

$ echo$c

shell 中的基本運算

shell 支援多種運算子,包括 bin bash a 12 加法 b a 4 echo 兩數之和為 b 兩數之和為 16 取餘 類似使用expr,bc,awk等 expr 是一款表示式計算工具,使用它能完成表示式的求值操作。注意 使用expr 時,表示式和運算子之間要有空格 反引號 中為可執行的s...

shell 基本運算

整數運算 a 4b 5 c a b 你以為這樣的結果是9嗎?echo c 4 5 shell預設都是字串操作的,所以得到的才是4 5,而不是9,怎麼搞?1.加點料 用這個把這個表示式括起來 c a b 這裡不需要用 引用了 echo c 9 或者更簡單的寫法 echo a b 2.用let語句 le...

shell 基本運算

root 41157cff18cd workspace expr 2 4 運算子中間由空格 6root 41157cff18cd workspace expr 2 4 2root 41157cff18cd workspace expr 2 4 號前要加轉義符,否則syntax error 8root...