2015/03/18

bash 預設變數

$0 : 執行的命令全名
$1, $2... : 各項參數
$? : 前一個指令執行的傳回值,例如某執行檔的 int main() { return 1; },則 $? 就是 1
$# :代表後接的參數『個數』,命令本身不算在內;
$@ :代表『 "$1" "$2" "$3" "$4" 』之意,每個變數是獨立的(用雙引號括起來);
$* :代表『 "$1c$2c$3c$4" 』,其中 c 為 $IFS 指定的分隔字元,預設為空白, 所以本例中代表『 "$1 $2 $3 $4" 』之意。
$! :取得前一個指令的 PID

例如:
IFS_SAVE="$IFS"
IFS="."
/tmp/scripttest opt1 opt2 opt3
$0 = "/tmp/scripttest"
$1 = "opt1"
$2 = "opt2"
$3 = "opt3"
$# = 3
$@ = "opt1" "opt2" "opt3"
$* = "opt1.opt2.opt3"
IFS="$IFS_SAVE"

沒有留言: