shell提供了一组变量,用来存储传递给脚本或函数的参数
$0~$9以及更多的位置参数扩展
| 1 | !/bin/bash | 
执行这个脚本,输出如下
| 1 | ./posit-param | 
$0存储的是所执行的程序所在的完成路径名,没有传递其他参数,则其他位置参数为空
在脚本内增加一行接收第十个参数
| 1 | ... | 
执行脚本,传递十个参数
| 1 | ./posit-param a b c d e f g h i j | 
可以通过参数扩展来接收第十个及更多的参数,将最后一行改为
| 1 | ... | 
$
$#存储的是传递给脚本或者函数的参数的个数
在posit-param脚本内加一行代码
| 1 | ... | 
| 1 | $ ./posit-param a b c d e f g h i j | 
shift用于处理大量参数
shift命令的作用是把除了$0以外的全部位置参数向左移动指定的间隔
| 1 | ... | 
示例脚本如下
| 1 | !/bin/bash | 
| 1 | $ ./posit-param2 a b c | 
$*与$@
$*扩展为从1开始的位置参数列表。当被双引号包裹时("$*"),将全部位置参数扩展为双引号引用的一个字符串,每个位置参数以IFS(通常默认为空格)变量分隔开。
$@扩展为从1开始的位置参数列表。当被双引号包裹时("$@"),将每个参数扩展为双引号引用的独立的字符串。
| 1 | !/bin/bash | 
| 1 | $ ./posit-param3 | 
所以位置参数的扩展有$*、"$*"、$@、"$@"四种形式。通常情况下,"$@"会更符合我们的预期效果。
