點丶闕4015137
2018-12-06 17:42:12
SHELL中$[num1]這種寫法是什么意思?num1=$[2*3]?num2=$[1+5]if test $[num1] -eq $[num2]
1 回答

pardon110
TA貢獻1038條經(jīng)驗 獲得超227個贊
?在shell中是test操作命令,通常用來測試文件,比較數(shù)字,字符串。而代碼語句的[]表示進行基本的算數(shù)運算。$在shell中通常表示對變量內(nèi)容的引用。其中 -eq是測試條件中的操作符,判斷是否相等
num1=$[2*3]? #計算表達式2*3的值賦給變量num1?
test $[num1] - eq $[num2]? # 比較數(shù)值變量num1與數(shù)值變量2是否相等
需要注意的是
在shell中賦值時,=號兩邊不能有空格,右邊值默認為字符串類型,
在sell中變量的定義與使用是兩個概念,定義完變量,在使用變量值時,需要在變量名前加$符號
簡單來講 $[num1] 是表示使用一個數(shù)值變量,
而$str則是使用一個字符串變量,
${nam}這種形式則表示為進行對變量的使用(不確定變量類型)
對于 a=3+7 ,若$a則值為字符串3+7,若$[a]則對其內(nèi)容值進行運算后的結(jié)果為10。前者默認為字符串,后者則是程序表達式語句。前者相當(dāng)于其它語言中的對字符加了單雙引號,后者類似js或python語言中的eval函數(shù)傳入一個字符串,通過相應(yīng)解釋器進行評估計算
添加回答
舉報
0/150
提交
取消