Shell传递参数

在执行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

发表评论

邮箱地址不会被公开。 必填项已用*标注