- 變數與變數內容以等號『=』來連結;
- 等號兩邊不能直接接空白字元;
- 變數名稱只能是英文字母與數字,但是數字不能是開頭字元;
#範例一:設定一變數 name ,且內容為 csie 。
[root@linux ~]# 12name=csie
-bash: 12name=csie: command not found %*<==不能以數字開頭。*)
[root@linux ~]# name = csie %*<==不能有空白。*)
[root@linux ~]# name=csie %*<==OK。*)
- 若有空白字元可以使用雙引號『 " 』或單引號『 ' 』來將變數內容結合起來,
- 雙引號內的特殊字元可以保有變數特性,
- 單引號內的特殊字元則僅為一般字元;
#範例二:單引號與雙引號之差異
[root@linux ~]# name=csie
[root@linux ~]# echo $name
csie
[root@linux ~]# myname="$name its me"
[root@linux ~]# echo $myname
csie its me
[root@linux ~]# myname='$name its me'
[root@linux ~]# echo $myname
$name its me
- 必要時需要以跳脫字元『
\ 』來將特殊符號 ( 如 Enter, $, \ , 空白字元, ' 等 ) 變成一般符號;
#範例三:承上題,若變數內容為 csie's name ?
[root@linux ~]# name=csie's name
# 單引號將特殊字符 Enter 取消且不完全, 另與要達到的功能也不同。
[root@linux ~]# name="csie's name" %*<==OK。*)
[root@linux ~]# name=csie\'s\ name
# 利用反斜線 (\) 跳脫特殊字元,例如單引號與空白鍵,也 OK。
- 在一串指令中,還需要藉由其他的指令提供的資訊,指令先執行:
- 使用 quote 『 ` command` 』;( ` 是鍵盤上方的數字鍵 1 左邊那個按鍵,而不是單引號。)
- 使用
$(command)。
#範例四:先以指令 locate 找到 crontab 目錄,再顯示目錄內容
[root@linux ~]# ls -l `locate crontab`
#範例五:進入目前核心的模組目錄?
[root@linux ~]# cd /lib/modules/$(uname -r)/kernel
# 利用 uname -r 指令先取得版本資訊。
- 若該變數為擴增變數內容時,則需以雙引號及 $變數名稱 如:『 "$PATH":/home』繼續累加內容;
#範例六:在 PATH 變數中『累加』目錄/home/csie/bin
[root@linux ~]# PATH=$PATH:/home/csie/bin
[root@linux ~]# PATH="$PATH":/home/csie/bin
#上面這兩種格式在 PATH 裡頭的設定都是 OK 。但是底下的例子就不見得。
#範例七:承範例三,將 name 的內容多出 "yes" ?
[root@linux ~]# name=$nameyes
# name 的內容是 $nameyes 這個變數。但沒有設定變數 nameyes,應該如下:
[root@linux ~]# name="$name"yes
[root@linux ~]# name=${name}yes
- 通常大寫字元為系統預設變數,自行設定變數可以使用小寫字元,方便判斷;
- 取消變數的方法為:『unset 變數名稱』。
#範例九:取消設定的 name 變數內容
[root@linux ~]# unset name