清单 3. 一个探究参数处理差别的函数
[ian@pinguino ~]$ type testfunc2
testfunc2 is a function
testfunc2 ()
{
echo “$# parameters”;
echo Using ‘$*’;
for p in $*;
do
echo “[$p]”;
done;
echo Using ‘”$*”‘;
for p in “$*”;
do
echo “[$p]”;
done;
echo Using ‘$@’;
for p in $@;
do
echo “[$p]”;
done;
echo Using ‘”$@”‘;
for p in “$@”;
do
echo “[$p]”;
done
}
使用 testfunc2 打印参数信息
[ian@pinguino ~]$ IFS=”|${IFS}” testfunc2 abc “a bc” “1 2
> 3″
3 parameters
Using $*
[abc]
[a]
[bc]
[1]
[2]
[3]
Using “$*”
[abc|a bc|1 2
3]
Using $@
[abc]
[a]
[bc]
[1]
[2]
[3]
Using “$@”
[abc]
[a bc]
[1 2
3]
$* 和 $@都是直接展开 参数中若有空格for就会隔开
“$*”是所有参数算一个词,比如像”123 sdfsdf asad tftf”,
“$@”是把所有参数一个个隔开, 比如”123 adsfdf” “asad tftf”
阅读(72 次)
Post a Comment