(五)shell變量聲明和使用


10:Shell 的運算符

(1)數值運算的方法

那如果我需要進行數值運算,可以采用以下三種方法中的任意一種:使用 declare 聲明變量類型,既然所有變量的默認類型是字符串型,那么只要我們把變量聲明為整數型不就可以運算了嗎?使用declare 命令就可以實現聲明變量的類型。命令如下:

[root@localhost ~]# declare [+/-][選項]

變量名選項:

-: 給變量設定類型屬性

+: 取消變量的類型屬性

-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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM