shell编程基础 • 1 变量赋值和引用 • 2 Shell里的流程控制 o 2.1 if 语 句 o 2.2 && 和 || 操作符 o 2.3 case 语句 o 2.4 select 语句 o 2.5 while/for 循环 • 3 Shell里的一些特殊符号 o 3.1 引号 • 4 Help Document • 5 Shell里的函数 • 6 命令行参数 • 7 Shell脚本示例 o 7.1 一般编程步骤 o 7.2 二进制到十进制的转换 o 7.3 文件循环拷贝 • 8 脚本调试 Shell编程基础是Linux或Unix系统中进行自动化任务和批处理操作的重要工具。下面将详细介绍其中的关键概念和语法。 1. **变量赋值和引用** - 变量无需预先声明,可以直接赋值,如 `a="hello world"`。 - 变量名首字符必须是字母,中间不能有空格,可以用下划线,不能使用标点符号或bash的保留关键字。 - 取值时使用 `$` 符号,如 `echo $a` 输出变量值。 - 在赋值时,等号两侧不应有空格,避免与字符串连接混淆。 - 当变量名可能与文字混淆时,可以使用花括号 `${num}` 清晰地指定变量。 2. **流程控制** - **if 语句**:基于条件执行代码块,例如: ```bash if [ -f "somefile" ]; then echo "File exists" else echo "File not found" fi ``` - **&& 和 || 操作符**:用于条件连接,前者表示前一个命令成功才执行后一个,后者表示前一个命令失败才执行后一个。 - **case 语句**:多分支选择结构,适用于多个条件的检查。 - **select 语句**:创建交互式菜单,常用于用户界面。 - **while/for 循环**:用于重复执行代码块直到满足特定条件或遍历列表。 3. **特殊符号** - 引号:单引号(')内不解析变量,双引号(")内解析变量。 - 花括号({})用于明确指定变量或防止混淆。 4. **Help Document** - 使用 `help` 命令可以查看bash内部命令的帮助文档。 5. **Shell函数** - 定义函数来组织和重用代码,如 `myfunc() { commands; }`。 6. **命令行参数** - 脚本运行时可以接收命令行参数,通过 `$1`, `$2`, ... 访问,`$0` 是脚本本身的名字。 7. **Shell脚本示例** - 编程步骤包括定义变量、流程控制、函数调用等。 - **二进制到十进制转换**:可以使用`bc`命令配合算术表达式。 - **文件循环拷贝**:可以使用`for`循环结合`cp`命令。 8. **脚本调试** - 使用`set -x`开启命令追踪,`set -v`开启命令行输入显示,便于理解脚本运行过程。 编写Shell脚本时,应确保以`#!/bin/bash`开头,指定解释器。通过`chmod +x`赋予脚本执行权限,然后使用`./scriptname`执行。记住,shell默认进行字符串赋值,进行数学运算时需使用适当的语法,如`let`, `$[]`, 或 `$(())`。















