shell變數是弱型別的,且預設是字串型,所以預設情況下無法進行數值計算。
解決方法如下:
命令格式:declare [+/-] [選項] 變數名
選項: - :給變數設定型別屬性
+ :取消變數的型別屬性
-a :將變數宣告為陣列型
-i :將變數宣告為整數型(integer)
-x :將變數宣告為環境變數
-r :將變數宣告為唯讀變數
-p:顯示指定變數的被宣告的型別
例子:a=1
b=2declare -i c=$a+$b
#c的值為3,而不是"1+2"
命令格式: bag[0]=ab 或declare -a bag[2]=dfs
echo $ #沒有下標,檢視第乙個元素
echo $ #檢視下標為1的元素
echo $
#檢視所有元素
除了上面講的declare -i方法,還有如下方法:
例子:a=2
b=3d=$(expr $a + $b) 注意: + 兩側必須有空格!
例子: a=3
b=5c=$(($a+$b)) 或 c=$[$a+$b]
shell程式設計之運算子
a declare i cc aa bb.會將cc宣告為整形。作的是加法運算 b declare x test 123 會將變變數宣告為環境變數。export實際也是呼叫的該命令。c declare p test 檢視當前test變數的定義格式 d declare r test 將test變數設定為...
十一 Shell程式設計之運算子
shel程式設計之運算子 一 declare命令 在shell中如果不宣告變數型別,所有的都預設是字串型別 1.declare宣告變數型別 格式 declare 選項 變數名 選項 給變數設定型別屬性 取消變數的型別屬性 a 將變數宣告為陣列型 i 將變數宣告為整數型 x 將變數宣告為環境變數 r ...
shell 指令碼程式設計之算術運算子
shell 的算術運算子只支援整數,浮點數的運算結果會被轉換成整數。算術運算子包括 冪運算 位左移 位右移 按位與 按位或 按位異或 按位非 使用 let expression 的方式將運算的結果儲存到變數中,如果直接寫var var1 var2這種賦值方式,則得到的結果是字串。ljx localh...