在我们初学linux系统shell时,可能会感觉$@与$*没什么区别,如下面shell脚本:
#!/bin/bash
# name:a.sh # echo 'this script $* is: '$* echo 'this script $@ is: '$@
执行结果表面上是一样的、如下图所示:
其实$*和$@还有一些区别的
$*(强调整体) //所有参数列表,代表"$1 $2 … $n",即当成一个整体输出,每一个变量参数之间以空格隔开。
$@(强调独立) //所有参数列表,代表"$1" "$2" … "$n" ,即每一个变量参数是独立的 。也是全部输出。
我们可以在for语句中使用双引号""看出两个变量的区别,shell脚本如下:
#!/bin/bash # script name:b.sh author:qq5201351 # for i in "$*";do echo $i done echo "=================" for i in "$@";do echo $i done
执行结果如下所示,由结果可见$@每一个参数都是独立的,所以在进行迭代时,也是单独输出的。
尊重别人的劳动成果 转载请务必注明出处:http://www.cnblogs.com/5201351/p/4590811.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!