Shell特殊變量:Shell $0, $#, $*, $@, $?, $$和命令行參數(shù)
特殊變量列表
變量 含義
- $0 當(dāng)前腳本的文件名
- $n 傳遞給腳本或函數(shù)的參數(shù)陋气。n 是一個(gè)數(shù)字浮入,表示第幾個(gè)參數(shù)刹泄。例如,第一個(gè)參數(shù)是$1显沈,第二個(gè)參數(shù)是$2积蜻。
- $# 傳遞給腳本或函數(shù)的參數(shù)個(gè)數(shù)蠢正。
- $* 傳遞給腳本或函數(shù)的所有參數(shù)。
- $@ 傳遞給腳本或函數(shù)的所有參數(shù)省店。被雙引號(" ")包含時(shí)嚣崭,與 $* 稍有不同,下面將會講到懦傍。
- $? 上個(gè)命令的退出狀態(tài)雹舀,或函數(shù)的返回值。一般情況下粗俱,大部分命令執(zhí)行成功會返回 0说榆,失敗返回 1。
- $$ 當(dāng)前Shell進(jìn)程ID寸认。對于 Shell 腳本签财,就是這些腳本所在的進(jìn)程ID。
$* 和 $@ 的區(qū)別
$* 和 $@ 都表示傳遞給函數(shù)或腳本的所有參數(shù)偏塞,不被雙引號(" ")包含時(shí)唱蒸,都以"$1" "$2" … "$n" 的形式輸出所有參數(shù)。
但是當(dāng)它們被雙引號(" ")包含時(shí)灸叼,"$*" 會將所有的參數(shù)作為一個(gè)整體神汹,以"$1 $2 … $n"的形式輸出所有參數(shù);"$@" 會將各個(gè)參數(shù)分開古今,以"$1" "$2" … "$n" 的形式輸出所有參數(shù)屁魏。