shell中特殊位置参数变量

时间:2021-11-20 15:34:25

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