首頁 > 軟體

Linux Shell指令碼 - 變數和資料型別

2020-06-16 16:34:39

摘要:本文主要學習了Shell指令碼中的變數和資料型別。

變數

定義變數的語法

定義變數時,變數名和變數值之間使用“=”分隔,並且等號兩邊不能有空格:

變數名=變數值

變數名規則

變數名的定義必須遵循以下規則:

1 命名只能使用英文字母,數位和下劃線,首個字元不能以數位開頭。
2 中間不能有空格,可以使用下劃線。
3 不能使用標點符號。
4 不能使用bash裡的關鍵字。

使用變數

使用一個定義過的變數,只要在變數名前面加美元符號即可,建議將變數名使用“{}”括起來之後再新增美元符號:

echo ${name}

修改變數為唯讀

使用readonly命令可以將變數定義為唯讀變數,唯讀變數的值不能被改變,也不能被刪除:

readonly name

刪除變數

使用unset命令可以刪除變數,但不能刪除唯讀變數:

unset name

資料型別

字串

字串是shell程式設計中最常用最有用的資料型別,字串可以用單引號,也可以用雙引號,也可以不用引號。

建議使用雙引號,因為雙引號裡可以有變數和特殊字元,可以按照變數和特殊字元去使用。

宣告字串型別的變數:

name="Sam"

拼接字串:

hello="hello, $name !"

整數型

在Shell中所有的變數預設都是字串型。也就是說,如果不手工指定變數的型別,那麼所有的數值都是不能進行運算的:

1 [root@localhost ~]# a=1
2 [root@localhost ~]# b=2
3 [root@localhost ~]# c=$a+$b
4 [root@localhost ~]# echo $c
5 1+2

如果想要進行數學運算,可以使用“$((運算式))”或“$[運算式]”方式運算:

1 [root@localhost ~]# echo $(($a+$b))
2 3
3 [root@localhost ~]# echo $[$a+$b]
4 3

陣列

bash支援一維陣列(不支援多維陣列),並且沒有限定陣列的大小。用括號來表示陣列,陣列元素用空格符號分割開。定義陣列的一般形式為:

陣列元素的下標由0開始編號。獲取陣列中的元素要利用下標,下標可以是整數或算術表示式,其值應大於或等於0。

宣告陣列型別的變數:

陣列名=(值1 值2 ... 值n)

也可以通過指定下標來宣告:

陣列名[下標]=值

獲取陣列指定下標的值:

${陣列名[下標]}

使用“@”符號可以獲取陣列中的所有元素:

${陣列名[@]}

 


IT145.com E-mail:sddin#qq.com