| 位置参数 | 描述 |
|---|---|
$n |
n为数字,$0代表命令本身,$1〜$9代表第1〜9个参数,10以上的参数需要用大括号包含, 如${10} |
$* |
这个变量代表命令行中所有的参数,把所有的参数看成一个整体 |
$@ |
这个变量也代表命令行中所有的参数,不过$@把每个参数区别对待 |
$# |
这个变量代表命令行中所有参数的个数 |
shift 命令
shift命令可以让你向左移动位置参数。如果你执行命令:
shift
那么之前保存在$2中的内容会分配给$1,保存在$3中的内容会分配给$2,以此类推。而$1中的旧值也就丢失了。执行该命令时,$#(变量总数)的值也会自动减1。
如果在没有位置参数可移动的情况下(也就是当$#已经为 0 的时候)使用shift,Shell会发出错误信息:
prog: shift: bad number
其中,prog是执行了不当的shift命令的程序名。
你可以在shift之后加上一个量词,一次移动多个位置,例如:
shift 3
该命令等价于下面的多个 shift 命令:
shiftshiftshift
在处理可变数量参数的时候,shift命令大有帮助。
