Shell脚本中$*和$@有什么不同?针对这个问题,今天小编总结这篇有关$*和$@的文章,可供感兴趣的小伙伴们参考借鉴,希望对大家有所帮助。
成都创新互联公司专注于企业成都营销网站建设、网站重做改版、博湖网站定制设计、自适应品牌网站建设、H5技术、商城系统网站开发、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为博湖等各大城市提供网站开发制作服务。
当 $* 和 $@ 不被双引号" "包围时,它们之间没有任何区别,都是将接收到的每个参数看做一份数据,彼此之间以空格来分隔。
但是当它们被双引号" "包含时,就会有区别了:
"$*"会将所有的参数从整体上看做一份数据,而不是把每个参数都看做一份数据。
"$@"仍然将每个参数都看作一份数据,彼此之间是独立的。
比如传递了 5 个参数,那么对于"$*"来说,这 5 个参数会合并到一起形成一份数据,它们之间是无法分割的;而对于"$@"来说,这 5 个参数是相互独立的,它们是 5 份数据。
如果使用 echo 直接输出"$"和"$@"做对比,是看不出区别的;但如果使用 for 循环来逐个输出数据,立即就能看出区别来。
关于 for 循环的用法请猛击:Shell for循环和for int循环详解
编写下面的代码,并保存为 test.sh:
#!/bin/bash
echo "print each param from \"\$\""
for var in "$"
do
echo "$var"
done
echo "print each param from \"\$@\""
for var in "$@"
do
echo "$var"
done
运行 test.sh,并附带参数:
[mozhiyan@localhost demo]$ . ./test.sh a b c d
print each param from "$"
a b c d
print each param from "$@"
a
b
c
d
从运行结果可以发现,对于"$*",只循环了 1 次,因为它只有 1 分数据;对于"$@",循环了 5 次,因为它有 5 份数据。
看完上述内容,你们对Shell脚本中$*和$@的区别大概了解了吗?如果想了解更多相关文章内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!
本文名称:Shell脚本中$*和$@有什么不同
当前URL:https://www.cdcxhl.com/article48/pdcjep.html
成都网站建设公司_创新互联,为您提供搜索引擎优化、网站建设、用户体验、响应式网站、网站内链、手机网站建设
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联