Shell 使用Shell變量
變量是一個字符串,我們分配一個值。分配的值可以是一個數字,文本,文件名,設備,或任何其他類型的數據。
變量是冇有超過實際數據的指針。 shell,可以創建,分配和刪除變量。
變量名:
變量的名稱可以包含隻有字母(a到z或A到Z),數字(0〜9)或下劃線(_)。
按照慣例,UNIX的shell變量將有自己的名稱以大寫字母。
下麵的例子是有效的變量名:
_ALI
TOKEN_A
VAR_1
VAR_2
以下是無效的變量名的例子:
2_VAR -VARIABLE VAR1-VAR2 VAR_A!
不能使用其他字符,如!,*或 - 這些字符有特殊含義。
定義變量:
變量定義如下:
variable_name=variable_value
例如:
NAME="Zara Ali"
上麵的例子中定義的變量名和分配值“Zara Ali”。這種類型的變量被稱為標量變量。一個標量變量隻能容納一個值一次。
shell可以存儲任何你想在一個變量的值。例如:
VAR1="Zara Ali" VAR2=100
訪問值:
為了訪問存儲在一個變量的值,它的名字的前綴為美元符號($):
例如,下麵的腳本將訪問的價值定義的變量名,將它打印在標準輸出:
#!/bin/sh NAME="Zara Ali" echo $NAME
這將產生以下值:
Zara Ali
隻讀變量:
shell提供了一種標記為隻讀變量使用的隻讀命令。後一個變量被標記為隻讀的,它的值不能被改變。
例如,下麵的腳本將給出錯誤提示,同時試圖改變NAME的值:
#!/bin/sh NAME="Zara Ali" readonly NAME NAME="Qadiri"
這個結果將產生以下如下:
/bin/sh: NAME: This variable is read only.
取消設置變量:
注銷或刪除的變量告訴shell刪除的變量的變量列表做了跟蹤。一旦您取消設置變量,你不可以訪問存儲在變量值。
以下是使用unset命令定義一個變量的語法:
unset variable_name
上麵的命令將取消設置定義的變量值。下麵是一個簡單的例子:
#!/bin/sh NAME="Zara Ali" unset NAME echo $NAME
上麵的例子會不會打印出任何東西。不能使用unset命令取消定義的變量冇有被標記為隻讀。
變量類型:
當一個shell運行,存在三種主要類型的變量:
-
局部變量: 局部變量是一個變量所做的是在當前實例中的shell。這不是程序由shell開始。在命令提示符下設置。
-
環境變量: 環境變量是一個變量所做的是任何子進程的shell。有些程序需要以正常的環境變量。通常一個shell腳本定義,隻有那些環境變量所需要的程序冇有運行。
-
Shell 變量: shell變量是一個特殊的變量,由shell設置,也是shell正常需要。一些合成變量環境變量,而其他局部變量。