UNIX与LINUX Shell编程:参数传递与shift命令

需积分: 1 0 下载量 152 浏览量 更新于2024-09-21 收藏 421KB PDF 举报
"LINUX与UNIX SHELL编程指南" 在Linux和UNIX系统中,Shell编程是一种强大的工具,允许用户自定义工作流程,自动化日常任务。本书深入讲解了Shell编程的各个方面,包括基本的命令、语法以及高级技巧。通过阅读这本书,读者能够掌握如何有效地编写Shell脚本,提高工作效率。 在讲解如何向脚本传递参数这一章节中,作者提到了几个关键概念: 1. **参数传递**:脚本可以通过变量`$1`到`$9`接收命令行参数,`$0`代表脚本本身的名字。`$#`则表示传递的参数总数。 2. **`shift`命令**:当需要处理多个参数,特别是需要遍历或偏移参数时,`shift`命令就显得非常有用。它会将所有参数向左移动一位,`$1`变成`$2`,`$2`变成`$3`,以此类推,`$9`会被清除。这样可以依次处理每个参数,直到没有剩余参数。 3. **`getopts`命令**:`getopts`是Shell提供的一个内建命令,用于处理命令行选项。它可以解析带有短选项的命令行参数,例如 `-l` 或 `-u`,并且能区分选项和非选项参数。`getopts`使得脚本更易于处理复杂的命令行界面。 4. **`case`语句**:在处理不同参数或选项时,`case`语句是一个强大的工具。它可以基于不同的参数值执行不同的操作,实现条件分支。 5. **文件名作为最后一个参数**:在某些情况下,我们可能需要获取命令行输入的最后一个参数,这通常是文件名。可以使用`eval echo $$#`或结合`shift`命令来实现。`eval`可以执行字符串作为命令,而`expr $# - 2`用于计算除了最后一个参数外的参数数量,然后`shift`将这些参数移除。 6. **文件转换示例**:书中给出一个使用`tr`命令进行文件大小写转换的例子,通过`-l`和`-u`选项,结合`shift`来实现。这个脚本展示了如何在实际应用中使用`shift`和`getopts`处理命令行参数。 通过学习这些内容,读者可以构建起对Shell脚本参数处理的基本理解,从而编写出更加灵活和高效的脚本,解决各种系统管理和自动化任务。对于Linux和UNIX系统管理员以及Shell编程人员来说,这些都是必备的技能。