Linux下的bash

来源:互联网 发布:手机淘宝账号余额查询 编辑:程序博客网 时间:2024/05/17 04:33
範例一:設定一變數 name ,且內容為 VBird[dmtsai@study ~]$ 12name=VBirdbash: 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 將變數變成環境變數後,就能夠在子程序底下應用了
範例六:如何進入到您目前核心的模組目錄?[dmtsai@study ~]$ cd /lib/modules/`uname -r`/kernel[dmtsai@study ~]$ cd /lib/modules/$(uname -r)/kernel  # 以此例較佳!
範例七:取消剛剛設定的 name 這個變數內容[dmtsai@study ~]$ unset name


0 0