适合谁?
- 第一次听说 “Shell 脚本” 的你
- 看到
#!/bin/bash就头大的你- 觉得“命令行好可怕”的你
- 只想“让电脑帮我干点重复活”的实用派
读完你能做到:
✅ 理解 Shell 到底是什么
✅ 写出第一个能运行的脚本
✅ 修改现成脚本为自己所用
✅ 不再害怕那些奇怪的符号
🧒 第一章:别被名字吓到!Shell 是什么?
🏠 生活比喻:Shell = 你的“厨房指挥官”
想象你在厨房做饭:
- 你对助手说:“先切菜,再烧水,水开了下面,最后加酱油。”
- 助手按顺序执行,不用你每一步都盯着。
Shell 就是这个“助手”!
- 你在终端输入
ls→ Shell 帮你列出文件 - 你写一个脚本 → Shell 自动帮你按顺序执行一堆命令
💡Shell 不是编程语言,而是“命令的自动化播放器”。
🔍 第二章:为什么你觉得 Shell “很难”?
我们先承认:Shell 确实有点“怪脾气”。但不是你笨,是它设计得不够友好。
| 你觉得难的原因 | 真相 |
|---|---|
符号太多($, ` | ,>,2>&1`) |
| 空格错一点就报错 | Shell 把空格当“分隔符”,就像中文不能把“你好”写成“你 好” |
| 错误提示看不懂 | 它很古老,诞生于 1970 年代,那时没考虑用户体验 |
| 不知道从哪开始学 | 你不需要学“全部”,只需要学“够用的部分” |
✅好消息:你不需要成为专家,只要会“拼命令”就够了!
🛠️ 第三章:Shell 编程的核心,其实只有 4 个积木
忘掉复杂语法!Shell 脚本 =4 个基础积木拼起来:
积木 1️⃣:变量—— 给数据起名字
name="小明" age=25 echo "你好,$name!你今年 $age 岁。"→$name就是“取出 name 的值”
📌 小贴士:变量名前加
$才能用!
积木 2️⃣:条件判断—— 让脚本会“思考”
if [ $age -gt 18 ]; then echo "你是成年人" else echo "你还未成年" fi[ ]是“判断框”-gt意思是 “greater than”(大于)then/else/fi是固定搭配(fi= if 倒过来)
✅ 记住:空格不能少!
❌[ $age-gt18 ]→ 报错
✅[ $age -gt 18 ]→ 正确
积木 3️⃣:循环—— 重复做事不手酸
for file in *.txt; do echo "找到文件: $file" done→ 自动列出所有.txt文件
积木 4️⃣:函数—— 把常用操作打包
greet() { echo "你好,$1!" # $1 表示第一个参数 } greet "小红" # 输出:你好,小红!🎮 第四章:动手!写你的第一个 Shell 脚本
目标:做一个“每日问候”小工具
步骤 1:新建文件
在终端输入:
nano hello.sh步骤 2:输入以下内容
#!/bin/bash # 这是一个简单的问候脚本 echo "👋 欢迎使用每日问候工具!" echo "请问你叫什么名字?" read name # 等待用户输入 echo "" echo "🌞 早上好,$name!今天也要加油哦!"步骤 3:保存并退出
- 按
Ctrl + O→ 回车确认保存 - 按
Ctrl + X→ 退出编辑器
步骤 4:给脚本“执行权限”
chmod +x hello.sh步骤 5:运行它!
./hello.sh🎉 你会看到:
👋 欢迎使用每日问候工具! 请问你叫什么名字? 小明 🌞 早上好,小明!今天也要加油哦!✅恭喜!你已经写出了人生第一个 Shell 脚本!
🔧 第五章:如何安全地“改”别人的脚本?(超实用!)
你不需要从零写!90% 的需求,都是“改”出来的。
比如你想用前面那个 HDMI 测试脚本,但只测两个通道:
- 找到这行:
CHANNELS=("HDMI IN1" "HDMI IN2" "F-HDMI") - 改成:
CHANNELS=("HDMI IN1" "HDMI IN2") - 保存,运行!
→这就是 Shell 编程的日常:复制 + 修改 + 运行。
💡记住:不要怕改坏!
脚本只是文本文件,删了重来就行。你可以先备份:cp hdmi.sh hdmi.sh.bak
🛡️ 第六章:避坑指南(新手常见错误)
| 错误 | 正确做法 |
|---|---|
忘记#!/bin/bash | 第一行必须写(告诉系统这是 Bash 脚本) |
| 变量赋值有空格 | ❌name = "Alice"→ ✅name="Alice" |
| 字符串没加引号 | ❌echo $name(如果 name 有空格会出错)→ ✅echo "$name" |
| 条件判断缺空格 | ❌[ $a==$b ]→ ✅[ "$a" == "$b" ] |
| 脚本没权限 | 运行前先chmod +x 脚本名 |
🧰 第七章:调试技巧(让错误无处藏身)
在脚本开头加一行:
#!/bin/bash set -x # 开启“侦探模式”运行时,你会看到每一行命令执行过程:
+ read name 小明 + echo '🌞 早上好,小明!' 🌞 早上好,小明!→ 哪里错了?一眼看出!
❤️ 第八章:Shell 编程的真正价值
你不需要写操作系统,也不需要造火箭。
Shell 的价值在于:
- 自动化重复劳动:每天备份文件?写个脚本,一键完成。
- 批量处理文件:重命名 100 张照片?3 行代码搞定。
- 快速验证想法:想试试某个命令组合?写进脚本,反复跑。
Shell 不是让你成为程序员,而是让你成为“更高效的自己”。
📚 第九章:学习建议(温和版)
从“改”开始,别从“写”开始
找现成脚本,改一行,跑一下,看效果。每次只学一个新东西
今天学变量,明天学 if,后天学 for —— 别贪多。用它解决真实问题
比如:“我想每天自动清理下载文件夹” → 写个脚本!允许自己犯错
报错?太正常了!每个程序员每天都在和错误战斗。
🎁 附:超简速查表(打印贴墙上)
# 变量 name="Alice" echo "$name" # 条件 if [ "$name" == "Alice" ]; then echo "Hi Alice" fi # 循环 for i in 1 2 3; do echo $i done # 输入 read input # 输出到文件 echo "log" > file.txt # 运行脚本 chmod +x script.sh ./script.sh✨ 最后的话
Shell 编程不是一座高山,而是一条小路。
你不需要一口气走到终点,只要迈出第一步,就已经超越了大多数人。
今天,就打开终端,写下:
echo "我,也可以!"然后对自己说:
“看,连电脑都在为我鼓掌。”👏
✅本文承诺:
- 零术语轰炸
- 全生活化比喻
- 每一步可操作
- 错误提前预警
- 信心全程陪伴
你不是不会,你只是还没开始。而开始,只需要一个echo。😊