一、本地變量的使用
本地變量就如同局部變量一樣,只在本SHELL中起作用。它不會影響到其他SHELL中的變量。
1。顯示變量值
可以使用echo命令。需要注意的是,使用變量的時候必須在變量名前加上$符號
2。清除變量
使用unset命令可以清除命令。
3。顯示所有本地SHELL變量
SHELL中預定義了一些環境變量。要想顯示這些命令,可以使用set命令。
另外,用戶自己已經定義過的本地變量也會在其中顯示。
4。測試變量是否已經賦值
${variable:-value}
如果變量已經賦值,則使用該變量值。如果變量為空,則使用value。需要注意的是,value並不賦給variable。
${variable:=value}
該表達式上面的區別就是,如果variable為空,則value賦給variable。
如果需要檢驗變量是否為空,如果為空的話則顯示帶有系統錯誤信息,則使用下面的表達式:
${variable:?}
如果需要顯示自己定義的信息,則如下:
${variable:?"customed message "}
5。設置只讀變量
使用readonly可以將變量定義成只讀。
readonly variable
單獨執行readonly可以顯示所有的只讀變量。
二、環境變量
環境變量用於所有的用戶進程。在Linux中,登陸進程稱為父進程,shell中執行的用戶程序均稱為子進程。
環境變量可以在命令行中設置,但用戶注銷時這些值將丟失。因此最好在$HOME/目錄下的.profile中定義。
傳統上環境變量均為大寫。環境變量應用於用戶進程之前,必須用export命令導出。設置方法與本地變量設置方法相同。
1。顯示環境變量
使用env命令可以察看所有環境變量
2。潛入SHELL變量
EXINIT保存使用vi編輯器的初始化選項。比如要顯示行號,則如下:
EXINIT='set nu';export EXINIT
HOME:用於記錄用戶的主目錄;
IFS:用作shell指定的缺省域分隔符。
PATH:保存進行命令或腳本查找的目錄順序。可以在.profile中進行設置。
3。將變量導出到子進程
在父腳本中使用export命令可以將變量導出,這樣子腳本便可以知道該變量的值。
三、位置變量參數
在向腳本傳遞參數時,可以使用此位置變量來獲取參數。
他們分別是:
{GetProperty(Content)}:腳本名字。此變量包含地址,可以使用basename {GetProperty(Content)}獲得腳本名稱。
{GetProperty(Content)}:第一個參數
$2,$3,$4,$5,...一次類推。
四、特定變量參數
一些腳本運行的相關控制信息
$# 傳遞到腳本的參數個數
$* 以一個單字符串顯示所有向腳本傳遞的參數
$ 腳本運行的ID號
$! 後台運行的最後一個進程的ID號
$@ 與$#相同,但是使用時加引號,並在引號中返回每個參數。
$- 顯示shell使用的當前選項。
$? 顯示最後命令的推出狀況。0表示沒有錯誤。