在shell中常用的特殊符號羅列如下:
# ; ;; . , / // 'string'| ! $ ${} $? $$ $*
/"string/"* ** ? : ^ $# $@ `command`{} [] [[]] () (())
|| && {xx,yy,zz,...}~ ~+ ~- & //<...//> + - %= == !=
# 井號 (comments)
這幾乎是個滿場都有的符號,除了先前已經(jīng)提過的/"第一行/"
#!/bin/bash
井號也常出現(xiàn)在一行的開頭,或者位于完整指令之后,這類情況表示符號后面的是注解文字,不會被執(zhí)行。
# This line is comments.
echo /"a = $a/" # a = 0
由于這個特性,當臨時不想執(zhí)行某行指令時,只需在該行開頭加上 # 就行了。這常用在撰寫過程中。
#echo /"a = $a/" # a = 0
如果被用在指令中,或者引號雙引號括住的話,或者在倒斜線的后面,那他就變成一般符號,不具上述的特殊功能。
~ 帳戶的 home 目錄
算是個常見的符號,代表使用者的 home 目錄:cd ~;也可以直接在符號后加上某帳戶的名稱:cd ~user或者當成是路徑的一部份:~/bin
~+ 當前的工作目錄,這個符號代表當前的工作目錄,她和內建指令 pwd的作用是相同的。
# echo ~+/var/log
~- 上次的工作目錄,這個符號代表上次的工作目錄。
# echo ~-/etc/httpd/logs
; 分號 (Command separator)
在 shell 中,擔任/"連續(xù)指令/"功能的符號就是/"分號/"。譬如以下的例子:cd ~/backup ; mkdir startup ;cp ~/.* startup/.
;; 連續(xù)分號 (Terminator)
專用在 case 的選項,擔任 Terminator 的角色。
case /"$fop/" inhelp) echo /"Usage: Command -help -version filename/";;version) echo /"version 0.1/" ;;esac
. 逗號 (dot,就是“點”)
在 shell 中,使用者應該都清楚,一個 dot 代表當前目錄,兩個 dot 代表上層目錄。
CDPATH=.:~:/home:/home/web:/var:/usr/local
在上行 CDPATH 的設定中,等號后的 dot 代表的就是當前目錄的意思。
如果檔案名稱以 dot 開頭,該檔案就屬特殊檔案,用 ls 指令必須加上 -a 選項才會顯示。除此之外,在 regularexpression 中,一個 dot 代表匹配一個字元。
'string' 單引號 (single quote)
被單引號用括住的內容,將被視為單一字串。在引號內的代表變數(shù)的$符號,沒有作用,也就是說,他被視為一般符號處理,防止任何變量替換。
heyyou=homeecho '$heyyou' # We get $heyyou
/"string/" 雙引號 (double quote)
被雙引號用括住的內容,將被視為單一字串。它防止通配符擴展,但允許變量擴展。這點與單引數(shù)的處理方式不同。
heyyou=homeecho /"$heyyou/" # We get home
`command` 倒引號 (backticks)
在前面的單雙引號,括住的是字串,但如果該字串是一列命令列,會怎樣?答案是不會執(zhí)行。要處理這種情況,我們得用倒單引號來做。
新聞熱點
疑難解答