shell中特殊位置參數變量:$0、$n、$#、$*、$@
$0:獲取當前執行shell腳本文件名,如果執行腳本包含路徑,那么就包括腳本路徑
$n:獲取當前執行shell腳本的第n個參數值、n=1..9,當n為0時表示腳本文件名;如果n大於9,則用大括號括起來,例如${10},接的參數以空格隔開
$#:獲取當前執行的shell腳本后面接的參數個數
$*:獲取當前shell腳本所有傳參的參數,不加引號和$@相同;如果給$*加上雙引號,例如:“$*”,則表示將所有的參數視為單個字符串,相當於“$1 $2 $3”
$@:獲取當前shell腳本所有傳參的參數,不加引號和$*相同;如果給$@加上雙引號,例如:“$@”,則表示將所有的參數視為獨立字符串,相當於“$1“,”$2“,"$3"
yao@linux:~/shells$ echo \${1..15}
$1 $2 $3 $4 $5 $6 $7 $8 $9 $10 $11 $12 $13 $14 $15
yao@linux:~/shells$ echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
yao@linux:~/shells$ echo $*
I am handsome boy
yao@linux:~/shells$ echo "$*"
I am handsome boy
yao@linux:~/shells$ echo $@
I am handsome boy
yao@linux:~/shells$ echo "$@"
I am handsome boy
dirname:獲取腳本的路徑
basename:獲取腳本的名字
yao@linux:~/shells$ dirname /home/yao/shells/4point1.sh
/home/yao/shells
yao@linux:~/shells$ basename /home/yao/shells/4point1.sh
4point1.sh