1 场景
脚本传参异常,总会有参数值错误,演示脚本如下:
function test()
{
echo $1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12;
}
test a b c d e f g h i j k l;
调用后输出如下:
# sh test.sh
a,b,c,d,e,f,g,h,i,a0,a1,a2
2 分析
调试如下:
# sh -x test.sh
+ test a b c d e f g h i j k l
+ echo a,b,c,d,e,f,g,h,i,a0,a1,a2
a,b,c,d,e,f,g,h,i,a0,a1,a2
这里很明显,参数$10被解析为:“${1}0”,导致参数传递异常。
3 总结
1. 参数尽量不要超过10个,建议3-5个。
2. 如果参数数量超过10个,那么从第10个开始,使用如下方式引用:
${10},${11},${12}