在 linux 的 shell 指令碼裡,變數預設都是字串的。以下面的指令碼為例:
#!/bin/bash
no1=4
no2=5
如果你直接使用「+」符號
result=$no1 + $no2
echo $result
得到的結果不是 9,而是 "45" 字串。這就是 shell 指令碼中變數預設為字串導致的結果。
那麼如何使得這兩個變數以 int 的值相加呢,有以下幾種方法:
(1)使用 let 關鍵字
let no1++
(2) 使用 操作符
result=$[ no1 + no2 ] 或者 result=$[ $no1 + 5 ]
(3) 使用 ( ( ) )
result=$(( no1 + 5 ))
以上的這些操作都是針對 int 型而已,要想對 double 型進行運算,就得使用 bc 關鍵字。比如
echo "4 * 0.56" | bc
2.24
no=54
result= `echo "$no * 5" | bc`
echo $result
81.0
echo "scale=2;3/8" | bc
0.37
#!/bin/bash
no=100
echo
"obase=2;$no" | bc
1100100
no=1100100
echo
"obase=10;ibase=2;$no" | bc
100
echo "sqrt(100)" | bc
echo "10 ^ 10" | bc
在 linux 的 shell 指令碼裡,變數預設都是字串的。以下面的指令碼為例:
#!/bin/bash
no1=4
no2=5
如果你直接使用「+」符號
result=$no1 + $no2
echo $result
得到的結果不是 9,而是 "45" 字串。這就是 shell 指令碼中變數預設為字串導致的結果。
那麼如何使得這兩個變數以 int 的值相加呢,有以下幾種方法:
(1)使用 let 關鍵字
let no1++
(2) 使用 操作符
result=$[ no1 + no2 ] 或者 result=$[ $no1 + 5 ]
(3) 使用 ( ( ) )
result=$(( no1 + 5 ))
以上的這些操作都是針對 int 型而已,要想對 double 型進行運算,就得使用 bc 關鍵字。比如
echo "4 * 0.56" | bc
2.24
no=54
result= `echo "$no * 5" | bc`
echo $result
81.0
echo "scale=2;3/8" | bc
0.37
#!/bin/bash
no=100
echo
"obase=2;$no" | bc
1100100
no=1100100
echo
"obase=10;ibase=2;$no" | bc
100
echo "sqrt(100)" | bc
echo "10 ^ 10" | bc
shell 數字運算
在 linux 的 shell 指令碼裡,變數預設都是字串的。以下面的指令碼為例 bin bash no1 4 no2 5如果你直接使用 符號 result no1 no2 echo result得到的結果不是 9,而是 45 字串。這就是 shell 指令碼中變數預設為字串導致的結果。那麼如何使得...
Shell數字及日期運算
兩邊沒有空格的 是賦值操作符,例如 number 6 加上空格的 是等量關係測試,例如 if 1 2 then ehco 1等於2 else echo 1不等於2 fi n1 2 n2 3 let rs n1 n2 echo rs 自加操作 let n1 echo n1 自減操作 let n1 le...
shell算數運算
i j k 等價於 i expr j k 等價於 i echo j echo k bc l 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 執行乙個...