shell学习7:$@和$*的区别和联系

在没有用双引号将$@和$*包括在里面的时候,二者都表示所有参数;

当有双引号将$@和$*包括在里面的时候,二者的区别就出来了,"$@"的参数列表是单独分开的,可以想象成数组,“$*”的参数列表是连成一片的,可以想象成是字符串,这两个知道首地址,都可以知道其他的元素,但是打印的时候就出现了不同。测试代码如下:

#!/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
echo "-------------------------"
echo "print each param from \$*"
for var in $*
do 
	echo "$var"
done

echo "print each param from \$@"
for var in $@
do 
	echo "$var"
done
exit 0

执行结果:

gyz@debian:~/shelltest$ ./aa_test.sh aa bb cc
print each param from "$*"
aa bb cc
print each param from "$@"
aa
bb
cc
-------------------------
print each param from $*
aa
bb
cc
print each param from $@
aa
bb
cc

 参考:http://c.biancheng.net/view/807.html

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值