(五)shell變量聲明和使用

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

相關文章
相關標籤/搜索