範例一:設定一變數 name ,且內容為 VBird [dmtsai@study ~]$ 12name=VBird bash: 12name=VBird: command not found... <==螢幕會顯示錯誤!因為不能以數字開頭! [dmtsai@study ~]$ name = VBird <==還是錯誤!因為有空白! [dmtsai@study ~]$ name=VBird <==OK 的啦! 範例二:承上題,若變數內容為 VBird's name 呢,就是變數內容含有特殊符號時: [dmtsai@study ~]$ name=VBird's name # 單引號與雙引號必須要成對,在上面的設定中僅有一個單引號,因此當你按下 enter 後, # 你還可以繼續輸入變數內容。這與我們所需要的功能不同,失敗啦! # 記得,失敗後要復原請按下 [ctrl]-c 結束! [dmtsai@study ~]$ name="VBird's name" <==OK 的啦! # 指令是由左邊向右找→,先遇到的引號先有用,因此如上所示, 單引號變成一般字元! [dmtsai@study ~]$ name='VBird's name' <==失敗的啦! # 因為前兩個單引號已成對,後面就多了一個不成對的單引號了!因此也就失敗了! [dmtsai@study ~]$ name=VBird\'s\ name <==OK 的啦! # 利用反斜線 (\) 跳脫特殊字元,例如單引號與空白鍵,這也是 OK 的啦! 範例三:我要在 PATH 這個變數當中『累加』:/home/dmtsai/bin 這個目錄 [dmtsai@study ~]$ PATH=$PATH:/home/dmtsai/bin [dmtsai@study ~]$ PATH="$PATH":/home/dmtsai/bin [dmtsai@study ~]$ PATH=${PATH}:/home/dmtsai/bin # 上面這三種格式在 PATH 裡頭的設定都是 OK 的!但是底下的例子就不見得囉! 範例四:承範例三,我要將 name 的內容多出 "yes" 呢? [dmtsai@study ~]$ name=$nameyes # 知道了吧?如果沒有雙引號,那麼變數成了啥?name 的內容是 $nameyes 這個變數! # 呵呵!我們可沒有設定過 nameyes 這個變數吶!所以,應該是底下這樣才對! [dmtsai@study ~]$ name="$name"yes [dmtsai@study ~]$ name=${name}yes <==以此例較佳! 範例五:如何讓我剛剛設定的 name=VBird 可以用在下個 shell 的程序? [dmtsai@study ~]$ name=VBird [dmtsai@study ~]$ bash <==進入到所謂的子程序 [dmtsai@study ~]$ echo $name <==子程序:再次的 echo 一下; <==嘿嘿!並沒有剛剛設定的內容喔! [dmtsai@study ~]$ exit <==子程序:離開這個子程序 [dmtsai@study ~]$ export name [dmtsai@study ~]$ bash <==進入到所謂的子程序 [dmtsai@study ~]$ echo $name <==子程序:在此執行! VBird <==看吧!出現設定值了! [dmtsai@study ~]$ exit <==子程序:離開這個子程序 什麼是『子程序』呢?就是說,在我目前這個 shell 的情況下,去啟用另一個新的 shell ,新的那個 shell 就是子程序啦!在一般的狀態下,父程序的自訂變數是無法在子程序內使用的。但是透過 export 將變數變成環境變數後,就能夠在子程序底下應用了 [code]範例六:如何進入到您目前核心的模組目錄? [dmtsai@study ~]$ cd /lib/modules/`uname -r`/kernel [dmtsai@study ~]$ cd /lib/modules/$(uname -r)/kernel # 以此例較佳!
範例七:取消剛剛設定的 name 這個變數內容 [dmtsai@study ~]$ unset name
[/code]