Shell 传递参数

执行 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$ 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本...
    枫海阅读 241评论 0 1
  • Shell传递参数 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个...
    wenjieli阅读 245评论 0 0
  • 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本...
    孤月环舟阅读 181评论 0 0
  • 传递参数 语法./xxx.sh 参数a 参数b 参数c 取echo ${1} ${2} ${3} 特殊字符$# :...
    f75dfaf80e43阅读 262评论 0 0
  • 北岛 到处都是残垣断壁 路,怎么从脚下延伸 滑进瞳孔的一盏盏路灯 滚出来,并不是星星 我不想安慰你 在颤抖的枫叶上...
    浮生涂鸦阅读 210评论 0 0