Bash 脚本入门教程:从第一个脚本到自动备份
摘要
Bash 是 Linux/macOS 的默认 Shell,也是自动化的利器。本教程依据 GNU Bash 官方手册整理,从第一个脚本讲起,覆盖变量、条件判断、循环、参数传递,并用 rsync 实战一个自动备份脚本,附调试与严格模式技巧。
Bash 脚本入门教程
Bash 是 Linux/macOS 的默认 Shell,也是自动化最趁手的工具。很多重复性工作——批量改名、定时备份、日志清理——写几行 Bash 脚本就能解决。本教程依据 Bash 官方手册(GNU Bash Reference Manual)整理,带你从零写出第一个实用脚本。
一、第一个脚本
新建文件 hello.sh:
第一行 #!/bin/bash 叫 shebang,告诉系统用 bash 来执行。运行前要赋予执行权限:
也可以不加分号直接用 bash hello.sh 执行。
二、变量
注意两点:赋值时等号两侧不能有空格;$() 是执行命令并取其输出,反引号 ` 是旧写法,推荐 $()。
三、条件判断
常用判断条件:
条件 | 含义 |
|---|---|
| 存在且是普通文件 |
| 存在且是目录 |
| 字符串为空 |
| 字符串相等 |
| 数值大于 10(-lt 小于、-ge 大于等于) |
$1、$2 是脚本的第一个、第二个参数,$# 是参数个数,$? 是上一条命令的退出码(0 表示成功)。
四、循环
遍历文件:
数值循环:
while 逐行读取文件:
五、实战:自动备份脚本
结合之前讲过的 rsync,写一个可执行的备份脚本 backup.sh:
set -e 是脚本安全的第一道防线;2>&1 把错误输出也写进日志。配合 crontab 加一行 0 2 * * * /path/to/backup.sh,就是全自动备份。
六、调试技巧
脚本开头写 set -euo pipefail 可以开启严格模式,变量未定义、命令失败都立即报错。
七、总结
需求 | 写法 |
|---|---|
接收参数 |
|
判断 |
|
遍历文件 |
|
逐行读取 |
|
出错即停 |
|
调试 |
|
Bash 的精髓在于把命令拼起来,而不是复杂的语法。先从解决自己手头重复劳动的小脚本写起,越写越熟练。
