第六課時 變數
第二部分 Shell編程
7.1 定義變數
格式:name=value #注意:等號兩邊不能有空格!
這裡與其他指令碼語言不同的地方是:value不需要加引號就可以定義為變數值,但是在變數值為字串且
存在空格時,則必須使用引號將value括起來。例如:name="this is value"
7.1.2 訪問值
存取方法:$name,在變數名前加上"$"符號
7.1.3 陣列變數
建立陣列變數的最簡單方法是為每一個元素賦值,例如:
name[index]=value
這裡name為數組名,index為數組下標,value為該元素的值。
name[0]=apple
name[1]=banana
name[2]=orange
另一種定義方法是:
name=(value1 value2 value3)
7.1.4 訪問數組值
${name[index]}訪問指定下標的元素
${name[*]}訪問數組中所有元素
7.1.5 唯讀變數
$ FRUIT=kiwi
$ readonly FRUIT
$ echo $FRUIT
輸出:kiwi
$ FRUIT="other value"
錯誤:FRUIT:This variable is read only
7.2 刪除變數
unset name
但不能刪除使用readonly變數
7.3 常用SHELL變數
PWD指出當前由cd命令設定的工作目錄
UID由Shell啟動時初始化、擴充為目前使用者的數字使用者ID
PATH指出命令的搜尋路徑。
HOME目前使用者的起始目錄:cd內建命令的預設參數
7.6 術語
標量:標量一次只能存放一個值。
陣列變數:是一種可用於bash、ksh中為標量進行分組的機制。
局部變數:指在當前shell執行個體中存在的變數。它不能用於該shell啟動的其他程式。
環境變數:是一個可用於任何一個shell所啟動程式的變數。
shell變數:shell變數是由shell設定的一個特殊變數。shell為正確實現功能要求使用該變數。
第七課時 替換
8.1 變數替換。
${parameter:-word}當parameter為空白或未設定,則用word代替parameter進行替換,
parameter的值不變
${parameter:=word}當parameter為空白或未設定,則parameter設為word
${parameter:?message}當parameter為空白或未設定,則message作為標準錯誤列印出來,這
可用來檢查變數是否正確設定
${parameter:+word}當parameteter設定了,則用word代替parameter進行替換,
parameter值不變
8.3 命令和算術替換
8.3.1 命令替換
通過命令替換機制,shell可執行一個給定的命令集合,然後在命令的位置替換它們的輸出。
替換格式:
newCommandName=`command`
例如:
DATA=`date`
USERS=`who | wc -l`
UP=`data;uptime`
當使用$ echo $DATA時,將會執行date命令,輸出當前日期.
8.3.2 算術替換
在ksh,bash中,shell可執行整數算術運算,這就避免了在shell指令碼中運行額外的如expr或bc這樣的程
序做算術
運行。