比较调用Shell函数时以不同方式传递数组参数的区别
Shell脚本文件如下:
#!/bin/sh
function demo1
{
echo "Number of params: $#"
echo "Params: $@"
while [ $# -gt 0 ]
do
echo $1
shift
done
}
paramArray=(a "bb" "cc dd" "ee ff gg")
echo "-----Call function with \"\${paramArray[@]}\"-----"
demo1 "${paramArray[@]}"
echo "-----Call function with \"\${paramArray[*]}\"-----"
demo1 "${paramArray[*]}"
echo "-----Call function with \${paramArray[@]}-----"
demo1 ${paramArray[@]}
echo "-----Call function with \${paramArrya[*]}-----"
demo1 ${paramArray[*]}
脚本在CentOS 6.0中的运行结果:
-----Call function with "${paramArray[@]}"-----Number of params: 4
Params: a bb cc dd ee ff gg
a
bb
cc dd
ee ff gg
-----Call function with "${paramArray[*]}"-----
Number of params: 1
Params: a bb cc dd ee ff gg
a bb cc dd ee ff gg
-----Call function with ${paramArray[@]}-----
Number of params: 7
Params: a bb cc dd ee ff gg
a
bb
cc
dd
ee
ff
gg
-----Call function with ${paramArrya[*]}-----
Number of params: 7
Params: a bb cc dd ee ff gg
a
bb
cc
dd
ee
ff
gg