安庆网站建设兼职,哪个公司的卡网络最好,做网站需要自己上传产品吗,新开的网页游戏大全$* 和 $ 都表示传递给函数或脚本的所有参数#xff0c;我们已在《Shell特殊变量》一节中进行了演示#xff0c;本节重点说一下它们之间的区别。 当 $* 和 $ 不被双引号 包围时#xff0c;它们之间没有任何区别#xff0c;都是将接收到的每个参数看做一份数据 都表示传递给函数或脚本的所有参数我们已在《Shell特殊变量》一节中进行了演示本节重点说一下它们之间的区别。 当 $* 和 $ 不被双引号 包围时它们之间没有任何区别都是将接收到的每个参数看做一份数据彼此之间以空格来分隔。 但是当它们被双引号 包含时就会有区别了 $*会将所有的参数从整体上看做一份数据而不是把每个参数都看做一份数据。 $仍然将每个参数都看作一份数据彼此之间是独立的。 比如传递了 5 个参数那么对于$*来说这 5 个参数会合并到一起形成一份数据它们之间是无法分割的而对于$来说这 5 个参数是相互独立的它们是 5 份数据。 如果使用 echo 直接输出$*和$做对比是看不出区别的但如果使用 for 循环来逐个输出数据立即就能看出区别来。 编写下面的代码并保存为 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并附带参数 [mozhiyanlocalhost 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 $*和$之间的区别 (biancheng.net)