【shell脚本语法大全】Shell 脚本是 Linux/Unix 系统中非常重要的工具,广泛用于自动化任务、系统管理、文件处理等。掌握 Shell 脚本的语法是每个系统管理员和开发者的必备技能。以下是对 Shell 脚本常用语法的总结,并以表格形式进行分类展示,便于查阅与学习。
一、基础语法
| 类别 | 内容说明 | 示例 |
| 注释 | 使用 `` 进行注释 | ` 这是一个注释` |
| 变量定义 | 使用 `变量名=值` 定义变量 | `name="John"` |
| 变量引用 | 使用 `$变量名` 引用变量 | `echo $name` |
| 命令执行 | 使用反引号或 `$()` 执行命令 | `date=$(date)` |
| 条件判断 | 使用 `[ 条件 ]` 或 `[[ 条件 ]]` | `if [ $a -eq 5 ]; then ... fi` |
二、流程控制语句
| 类别 | 内容说明 | 示例 |
| if 语句 | 判断条件是否成立 | `if [ $num -gt 10 ]; then echo "大于10"; fi` |
| else 语句 | 否则执行 | `if [ $num -gt 10 ]; then ... else ... fi` |
| elif 语句 | 多条件判断 | `if [ $num -gt 10 ]; then ... elif [ $num -eq 10 ]; then ... fi` |
| for 循环 | 遍历列表或范围 | `for i in 1 2 3; do echo $i; done` |
| while 循环 | 当条件为真时循环 | `while [ $count -lt 5 ]; do count=$((count+1)); done` |
| until 循环 | 直到条件为真时退出 | `until [ $count -ge 5 ]; do count=$((count+1)); done` |
三、函数定义与调用
| 类别 | 内容说明 | 示例 |
| 函数定义 | 使用 `function 函数名` 或 `函数名() { ... }` | `greet() { echo "Hello, $1"; }` |
| 函数调用 | 直接使用函数名并传参 | `greet "Alice"` |
| 返回值 | 使用 `return` 返回整数 | `add() { return $(($1 + $2)); }` |
| 参数传递 | 使用 `$1`, `$2` 等获取参数 | `echo "第一个参数: $1"` |
四、字符串与数值操作
| 类别 | 内容说明 | 示例 |
| 字符串拼接 | 直接使用变量拼接 | `full_name="$first $last"` |
| 字符串长度 | 使用 `${变量}` 获取长度 | `len=${name}; echo $len` |
| 数值运算 | 使用 `$((表达式))` 进行计算 | `sum=$((a + b))` |
| 比较运算 | `-eq`, `-ne`, `-gt`, `-lt`, `-ge`, `-le` | `if [ $a -gt 5 ]; then ... fi` |
五、文件与目录操作
| 类别 | 内容说明 | 示例 |
| 文件判断 | `[ -f 文件 ]` 判断是否为文件 | `if [ -f /etc/passwd ]; then ... fi` |
| 目录判断 | `[ -d 目录 ]` 判断是否为目录 | `if [ -d /home ]; then ... fi` |
| 文件读取 | 使用 `read` 读取输入 | `read name` |
| 文件写入 | 使用 `>` 或 `>>` 重定向输出 | `echo "content" > file.txt` |
六、特殊字符与通配符
| 符号 | 说明 | 示例 |
| 匹配任意多个字符 | `ls .txt` | |
| ? | 匹配一个字符 | `ls file?.txt` |
| [] | 匹配括号内的任意字符 | `ls file[1-3].txt` |
| \ | 转义符号 | `echo \"Hello\"` |
| ` | 命令替换 | `today=$(date)` |
七、环境变量与位置参数
| 类别 | 内容说明 | 示例 |
| 环境变量 | 通过 `export` 设置 | `export PATH=$PATH:/new/path` |
| 位置参数 | `$0`, `$1`, `$2` 等表示参数 | `echo "第一个参数: $1"` |
| 特殊变量 | `$?` 表示上一条命令的返回值 | `if [ $? -eq 0 ]; then ... fi` |
总结:
Shell 脚本虽然语法简单,但功能强大,适用于各种自动化场景。掌握基本语法后,结合实际问题,可以编写出高效、简洁的脚本。建议在实践中不断积累经验,同时多参考官方文档和社区资源,提升脚本编写能力。
如需进一步了解特定命令或高级用法(如正则表达式、数组、管道等),可继续深入学习。


