Shell 传递参数
2017-05-03 本文已影响23人
谢小帅
执行 Shell 脚本时,可以向脚本传递参数。
脚本内获取参数的格式为:$n
- $0 为执行的文件名
- $1 为执行脚本的第一个参数,$2 为执行脚本的第二个参数,以此类推……
- $#:参数总个数
- $@ 与 $*都可以得到所有参数,但是双引号情况下有区别
#!/bin/bash
echo "Shell 传递参数实例!";
echo "执行的文件名:$0";
echo "第一个参数为:$1";
echo "第二个参数为:$2";
echo "第三个参数为:$3";
echo "参数个数为:$#";
echo "传递的参数作为一个字符串显示:$*";
echo ""
# $* 与 $@ 区别只有在双引号中体现出来
# 假设在脚本运行时写了三个参数 1、2、3
# "*" 等价于 "1 2 3"(传递了一个参数)
# "@" 等价于 "1" "2" "3"(传递了三个参数)
echo "* 与 @ 区别"
echo "使用双引号的情况"
for i in "$*"; do
echo $i
done
echo ""
for i in "$@"; do
echo $i
done
echo ""
echo "不使用双引号的情况"
for i in $*; do
echo $i
done
echo ""
for i in $@; do
echo $i
done
echo ""
输出
ShuaideMacBook-Pro:Desktop shuai$ ./a.sh 1 2 3 4
Shell 传递参数实例!
执行的文件名:./a.sh
第一个参数为:1
第二个参数为:2
第三个参数为:3
参数个数为:4
传递的参数作为一个字符串显示:1 2 3 4
* 与 @ 区别
使用双引号的情况
1 2 3 4
1
2
3
4
不使用双引号的情况
1
2
3
4
1
2
3
4
ShuaideMacBook-Pro:Desktop shuai$