我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推……
其中$0 是执行文件的文件名
#!/bin/bash # author:菜鸟教程 # url:www.runoob.com echo "Shell 传递参数实例!"; echo "执行的文件名:$0"; echo "第一个参数为:$1"; echo "第二个参数为:$2"; echo "第三个参数为:$3";
然后给脚本运行权限并输出结果
$ chmod +x test.sh $ ./test.sh 1 2 3 Shell 传递参数实例! 执行的文件名:./test.sh 第一个参数为:1 第二个参数为:2 第三个参数为:3
#!/bin/bashecho "shell 传递参数实例! ";
echo "第一个参数是 $1";
echo "参数个数为: $#";
echo "传递的参数作为一个字符串显示: $*";
输出结果
$ chmod +x test.sh $ ./test.sh 1 2 3 Shell 传递参数实例! 第一个参数为:1 参数个数为:3 传递的参数作为一个字符串显示:1 2 3
$*与$@的区别:
相同点:都是引用所有参数
不同点:只有在双引号中体现出来.假设在脚本运行时写了三个参数 1.2.3
则@* 等价于"1 2 3 "(传递了一个参数)
而"@"等价于"1" "2""3"(传递了三个参数)
#!/bin/bash
echo "-- \$* 演示 --"
for i in "$*";
done
echo"-- \$@ 演示---"
for i in "$@":
do
echo $i
done
输出结果
$ chmod +x test.sh $ ./test.sh 1 2 3 -- $* 演示 --- 1 2 3 -- $@ 演示 --- 1 2 3