shell脚本 test.sh调用的时候传入参数,param1,param2:
#test.sh param1 param2
那么在脚本内部相当于把 test.sh param1 param2 看成三个参数出入,所以参数0为$0 (test.sh),参数1为$1 (parm1),参数2为$2 (parm2),也就是把脚本自己的名称看成参数0,参数个数$#还是2,而不是3,这个要注意。
这种调用方式有点想main函数在参数传入的时候把arg[0],看成可执行文件本身,参数1才是arg[1]........,原理上是相同的。