10:Shell 的運算符shell
(1)數值運算的方法數組
那若是我須要進行數值運算,能夠採用如下三種方法中的任意一種:使用 declare 聲明變量類型,既然全部變量的默認類型是字符串型,那麼只要咱們把變量聲明爲整數型不就能夠運算了嗎?使用declare 命令就能夠實現聲明變量的類型。命令以下:bash
[root@localhost ~]# declare [+/-][選項]測試
變量名選項:字符串
-: 給變量設定類型屬性test
+: 取消變量的類型屬性變量
-a: 將變量聲明爲數組型二進制
-i: 將變量聲明爲整數型(integer)程序
-r: 講變量聲明爲只讀變量。注意,一旦設置爲只讀變量,既不能修改變量的值,也不能刪除變量,甚至不能經過+r 取消只讀屬性.方法
-x: 將變量聲明爲環境變量
-p: 顯示指定變量的被聲明的類型
例子1:聲明變量類型進行運算
[root@localhost ~]# aa=11
[root@localhost ~]# bb=22
#給變量 aa 和 bb 賦值
[root@localhost ~]# declare -i cc=$aa+$bb
#聲明變量 cc 的類型是整數型,它的值是 aa 和 bb 的和
[root@localhost ~]# echo $cc
33
#這下終於能夠相加了
例子 2:數組變量類型
注意數組的下標是從 0 開始的,在調用數組值時,須要使用${數組[下標]}的方式來讀取。
[root@localhost ~]# name[0]="li "
[root@localhost ~]# name[1]="ming"
[root@localhost ~]# name[2]=" ang"
[root@localhost ~]# echo ${name}
li
#輸出數組的內容,若是隻寫數組名,那麼只會輸出第一個下標變量
[root@localhost ~]# echo ${name[*]}
li ming ang
例子 3: 環境變量
咱們其實也能夠使用 declare 命令把變量聲明爲環境變量,和 export 命令的做用是同樣的:
[root@localhost ~]# declare -x test=123
#把變量 test 聲明爲環境變量
例子 4:只讀屬性
注意一旦給變量設定了只讀屬性,那麼這個變量既不能修改變量的值,也不能刪除變量,甚至不能使用「+r」選項取消只讀屬性。命令以下:
[root@localhost ~]# declare -r test
#給 test 賦予只讀屬性
[root@localhost ~]# test=456
-bash: test: readonly variable
#test 變量的值就不能修改了
[root@localhost ~]# declare +r test
-bash: declare: test: readonly variable
#也不能取消只讀屬性
[root@localhost ~]# unset test
-bash: unset: test: cannot unset: readonly variable
#也不能刪除變量.
例子 5:查詢變量屬性和取消變量屬性
變量屬性的查詢使用「-p」選項,變量屬性的取消使用「+」選項。命令以下:
[root@localhost ~]# declare -p cc
declare -i cc="33"
#cc 變量是 int 型
[root@localhost ~]# declare -p name
declare -a name='([0]=" li " [1]="li " [2]="ming")'
#name 變量是數組型
[root@localhost ~]# declare -p test
declare -rx test="123"
#test 變量是環境變量和只讀變量
[root@localhost ~]# declare +x test
#取消 test 變量的環境變量屬性
[root@localhost ~]# declare -p test
declare -r test="123"
#注意,只讀變量屬性是不能取消的.
例子6:shell運算
Shell 進行算運算:
(1)$(( $num1 + $num2 ))
(2)declare –i聲明變量是整形
(3)dd=$(expr $aa + $bb)
#dd 的值是 aa 和 bb 的和。注意「+」號左右兩側必須有空格
(4)let ee=$aa+$bb
(5)gg=$[ .
+$bb ]
Shell運算符:
13 -, + 單目負、單目正
12 !, ~ 邏輯非、按位取反或補碼
11 * , / , % 乘、除、取模
10 +, - 加、減
9 << , >> 按位左移、按位右移
8 < =, > =, < , > 小於或等於、大於或等於、小於、大於
7 == , != 等於、不等於
/* & 按位與/
5 ^ 按位異或
4 | 按位或
3 && 邏輯與
2 || 邏輯或
1 =,+=,-=,*=,/=,%=,&=, ^=, |=, <<=, >>= 賦值、運算且賦
基本上:經常使用的四則運算,&&,||,
異或運算:二進制運算,& 有0爲0 ,| 有1爲1
變量的測試與內容置換:
測試變量是否有數值:
狀況:
(1)變量沒有聲明,echo輸出是空。 set –u echo $name沒有會報錯,程序的識別須要用到shell自帶的測試
(2)變量聲明 name=」」爲空
x=${y-新值} x=新值 x 爲空 x=$y
若是 y沒有聲明 x=new
若是 y=」」 x=空
若是 y=123 x=123