1. 位置参数及其引用
执行 UNIX/Linux 命令或者 shell 脚本的时候可以带有命令行参数。相应的,类似于C语言,shell 程序中也有相应的变量可以访问这些命令行参数。在 shell 脚本中这类变量的名称很特别,分别是0,1,2,...,这类变量称为位置变量,因为它们与命令行上具体位置上的实参相对应:命令名对应位置变量0,第一个实参对应位置变量1,第二个实参对应位置变量2如果位置变量的编号到了两位数,那么必须用一对{}
将它们括起来。
下面是一个ls -l -a -R
命令的例子:
在ls
程序中直接可以通过这些位置变量访问所有命令行参数。
2. 用 set 命令设置命令行参数
在 shell 程序中可以用set
命令为位置参数赋值或者重新赋值。
3. 移动位置参数
移动位置参数。顾名思义,即将所有位置参数右移一个单位,具体如下图:
有了移动位置参数,就可以方便地遍历所有的位置参数:
3. $
shell 中有一个预定义的变量$#
,表示的是命令行参数的个数,类似于C语言的argc
。