深入探索Shell输入、输出与吞吐量
1. 位置参数与特殊参数
在Shell脚本中,位置参数是非常重要的概念。Bourne shell 只能处理最多 9 个位置参数,如果脚本中使用$10,它会被解释为$1后面跟着一个零。为了兼容旧脚本,bash 保留了这种行为。若要访问大于 9 的位置参数,需要将数字用花括号括起来,例如${15}。
脚本通过位置参数传递信息,可通过$0、$1、$2等进行访问。shift N函数能将位置参数向左移动 N 个位置,若省略 N,默认值为 1。例如,执行shift后,$0会被丢弃,$1变为$0,$2变为$1,依此类推。不过要注意,shift函数是具有破坏性的,被丢弃的参数无法恢复。
特殊参数也有其独特的用途:
| 参数 | 说明 |
| ---- | ---- |
|$*和$@| 展开为所有位置参数组合后的值 |
|$#| 展开为位置参数的数量 |
|$0| 包含当前运行脚本的路径,若未执行脚本则为 sh