shell腳本中 '$' 與不同的符號搭配其表示的意義也會不同
特殊標志符 | 含義 |
$0 | 當前腳本的文件名 |
$n | 傳遞給腳本或函數的參數。n 是一個數字,表示第幾個參數。 例如,第一個參數是$1,第二個參數是$2 |
$# | 傳遞給腳本或函數的參數個數 |
$* | 傳遞給腳本或函數的所有參數 |
$@ | 傳遞給腳本或函數的所有參數 |
$? | 上個命令的退出狀態 |
$$ | 當前Shell進程ID |
$() | 與 `(反引號) 一樣用來命令替換使用 |
${} | 引用變量划分出邊界 |
注釋:$* 和 $@ 都表示傳遞給函數或腳本的所有參數,不被雙引號(" ")包含時,都以"$1" "$2" … "$n" 的形式輸出所有參數。但是當它們被雙引號(" ")包含時,"$*" 會將所有的參數作為一個整體,以"$1 $2 … $n"的形式輸出所有參數;"$@" 會將各個參數分開,以"$1" "$2" … "$n" 的形式輸出所有參數
#! /bin/bash echo "file name $0" echo "first param $1" echo "pid $$" echo "total num of param $#" echo "last status $?" echo "$@" echo "$*"
執行 ./1.sh hello mayuan
file name ./1.sh first param hello pid 142 total num of param 2 last status 0 hello mayuan hello mayuan