在执行shell脚本时可以向脚本内传递参数,脚本中可以通过“ $n”(n是数字)获取到传递的参数
编辑脚本
$ vim test.sh
添加以下脚本内容
echo $1 #执行脚本传递的第一个参数
echo $2 #执行脚本传递的第二个参数
echo $3 #执行脚本传递的第三个参数
echo $# #执行脚本传递参数的个数
echo $* #以单个字符串显示所有参数
echo $@ #与$*相同,但是使用时加引号,并在引号中返回每个参数
echo $- #显示Shell使用的当前选项,与set命令功能相同
echo $? #显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误
执行命令
$ ./test.sh var1 var2 var3
执行脚本结果
var1
var2
var3
3
var1 var2 var3
var1 var2 var3
hB
0
两种获取所有参数的异同点
脚本中添加如下内容
#$*和$@的区别
#相同点:都是引用所有参数。
#不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而 "@" 等价于 "1" "2" "3"(传递了三个参数)。
echo '$* 演示'
for i in "$*";do
echo $i
done
echo '$@ 演示'
for i in "$@";do
echo $i
done
执行命令
$ ./test.sh var1 var2 var3
执行脚本结果
$* 演示
var1 var2 var3
$@ 演示
var1
var2
var3