知用网
霓虹主题四 · 更硬核的阅读氛围

从零开始学Bash脚本:实用入门指南

发布时间:2025-12-11 00:20:33 阅读:192 次

刚接触Linux系统时,很多人会被终端里一串串命令吓到。其实,这些命令背后藏着一个强大的工具——Bash。它不只是输入命令的接口,还能通过写脚本来自动化处理日常任务。比如你每天都要整理下载文件夹,手动移动图片、文档、视频到对应目录,重复又费时。用几行Bash脚本,就能让电脑自己完成。

什么是Bash脚本

Bash(Bourne Again Shell)是Linux和macOS系统默认的命令行解释器。Bash脚本就是把一系列命令写进一个文件里,让系统按顺序执行。它不需要编译,直接运行,特别适合做文件管理、日志分析、批量重命名这类工作。

写第一个脚本

打开文本编辑器,新建一个文件叫 hello.sh,输入下面内容:

#!/bin/bash
echo "Hello,今天过得怎么样?"

第一行的 #!/bin/bash 叫“shebang”,告诉系统用Bash来执行这个文件。保存后,在终端运行:

chmod +x hello.sh
./hello.sh

就会看到输出结果。别小看这短短两行,这就是脚本的起点。

变量和输入

脚本如果只能固定输出就没意思了。加点变量让它灵活起来:

#!/bin/bash
name=$1
echo "你好,$name!欢迎使用脚本"

这里的 $1 表示第一个命令行参数。运行 ./hello.sh 小明,就会输出“你好,小明!”。也可以用 read 让用户交互输入:

echo "请输入你的名字:"
read name
echo "欢迎你,$name"

条件判断:让脚本能“思考”

想让脚本根据情况做不同操作?用 if 判断。比如检查某个文件是否存在:

#!/bin/bash
if [ -f "/home/user/note.txt" ]; then
    echo "笔记文件存在,可以继续"
else
    echo "文件没找到,先创建一个"
    touch /home/user/note.txt
fi

方括号 [ ] 是条件测试命令,-f 检查文件是否存在。这种结构在备份脚本、服务监控中很常见。

循环处理批量任务

假如你拍了100张照片,名字是IMG_001到IMG_100,想统一加上前缀“vacation_”。手动改太累,用for循环:

#!/bin/bash
for file in *.jpg; do
    mv "$file" "vacation_$file"
done

这个脚本会遍历当前目录所有.jpg文件,依次重命名。类似的逻辑可以用来批量转换图片格式、压缩日志文件等。

实际应用场景

试试这个实用的小脚本:每天早上自动下载天气信息并提醒你是否需要带伞。

#!/bin/bash
weather=$(curl -s "wttr.in?format=3")
echo "今天的天气:$weather"

if [[ $weather == *"rain"* ]]; then
    echo "记得带伞!"
fi

配合系统的定时任务工具cron,设置每天8点自动运行,你就再也不会被雨淋着出门了。

调试与优化

脚本出错时,可以用 bash -x 脚本名 来追踪每一步执行过程。比如运行 bash -x weather.sh,系统会打印出每一行实际执行的命令,方便定位问题。

写脚本时,建议加上注释说明用途、作者和修改时间。虽然不影响执行,但几个月后再看,你会感谢当初写注释的自己。

下一步怎么走

掌握了基础语法后,可以尝试更复杂的操作,比如读取配置文件、处理JSON数据、调用API接口。网上有很多开源脚本可以参考学习,GitHub上搜“bash script”能找到不少实用案例。多练多改,慢慢就能写出属于自己的自动化工具。