$@与$*的不同之处

$@与$*的不同之处

$*: 把我们传递给脚本的参数全部合为一个字节,当成一个字符串或者参数来使用。

$@: 把我们传递给脚本的所有参数,每个参数都为独立字符串,当我们用 ((n) 来调用的时候, 输入参数的位置为第几个,那我们就用用)n来调用第几个,一对应。

下面我们用代码来看一下这两个的区别:

创建一个简单的脚本让他输出我们输入的多个参数:” $* ”
并且调用自脚本,传给他一个” $@ “的参数。



然后再子脚本中写脚本调用并输出3.log(父脚本)” $1 “,也就是第一个参数。



运行脚本3.log 输入3个参数分别为a;b;c看运行结果

有结果可以看出,子程序在传入” $@ “后,调用” $1 “,只取到了输入的第一个参数的内容,说明多个参数并没有被变为一个字符串。

接下来我们看一下” $* “的调用
4.log这个子程序我们不变。只把3.log中,自脚本调用的参数格式改为” $* “看看结果会如何




在4.log中,我们输出的还是” $1 “,而这次把我们输入的所有参数都显示了出来。说明我们输入的所有参数被当成一个参数来使用了。
希望通过这个小实验让大家了解二者的区别。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,662评论 0 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,850评论 19 139
  • //Clojure入门教程: Clojure – Functional Programming for the J...
    葡萄喃喃呓语阅读 9,235评论 0 7
  • 每个人不同的思想 各自坚持的方向 我们不懂彼此的倔强 暖日的那朵云上 留下一抹离殇 那是我淡淡的伤 在雨中奔跑 花...
    鱼骨头07589阅读 721评论 0 0
  • 其实,我并没想好此刻写什么. 也不知道会有谁看. 此刻,我在曼城,我在英国. 此刻,白天过后,夜晚就只剩下孤单席卷...
    XsiD阅读 1,670评论 0 0

友情链接更多精彩内容