1. 入参个数: $#
2. 入参: $0 脚本名 $1第一个参数
3. $@ 和 $*:
"$@" "$*" 都是所有入参
$@ 将入参变成一个数组 $*将入参变成一个字符串
4. 数组作为入参: fucn2 ${arr[*]} ,函数内部获取入参数组: arr=` echo "$@" `
demo :
function test1 {
if [ "$#" -ne 3 ]
then
echo "3 params..."
fi
echo "travel \$* : "
for item in "$*"
do
echo $item
done
echo "travel \$@ : "
for item in "$@"
do
echo $item
done
}
function test2 {
newArr=($(echo "$@"))
local sum=0
for value in ${newArr[*]}
do
sum=$[$sum+$value]
done
echo "test2 sum : "$sum
}
test1 a b c
myarr=(1 2 3 4)
test2 ${myarr[*]}
结果输出:
travel $* :
a b c
travel $@ :
a
b
c
test2 sum : 10