shell变量------位置变量

1.位置变量

$0:获取当前执行shell脚本的文件名,包括路径(不在shell所在目录执行)

dirname $0    取出路径

basename $0    取出文件名

[tibasbil@ibastst /ibas]$ cat s.sh
dirname 0
basename $0
[tibasbil@ibastst /ibas]$ sh s.sh
.   #当前目录
s.sh   #文件名
View Code

$n:获取当前执行的shell脚本的第n个参数值,n=1~9,当n=0时表示脚本的文件名,如果n大于9需要用大括号括起来,例如,echo ${10},当n<9的时候就是在命令行中穿的参数依次传入。

[tibasbil@ibastst /ibas]$ cat s.sh
echo $1 $2 $3 $4 $5 $6 $7 $8 $9 ${10}
[tibasbil@ibastst /ibas]$ sh s.sh 1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
View Code

$*:获取当前shell的所有参数,将所有的命令行参数视为单个字符串,相当于“$1$2$3”,注意与$#的区别

[tibasbil@ibastst /ibas]$ cat s.sh
echo $1 $2 $3 $4 $5
echo $*
echo $@
[tibasbil@ibastst /ibas]$ sh s.sh  1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
View Code

$#:获取当前shell命令行参数的总个数

[tibasbil@ibastst /ibas]$ cat s.sh
echo $1 $2 $3 $4 $5
echo $#
[tibasbil@ibastst /ibas]$ sh s.sh 1 2 3 4 5 
1 2 3 4 5
5
View Code

$@:$* 和 $@是一个效果

猜你喜欢

转载自www.cnblogs.com/yu-sheng/p/9849812.html