Lesson 12: Shell 脚本基础
Lesson 12: Shell 脚本基础
本课预计 15 分钟,涵盖 6 个核心概念、7 条实战命令、3 道巩固题。
🎯 学习目标
完成本课后,你将能够:
- 理解并应用 Shebang
- 理解并应用 变量
- 理解并应用 条件判断
- 理解并应用 循环
- 理解并应用 函数
- 理解并应用 参数传递
- 在 VPS 上熟练运行相关命令
- 通过测验验证掌握程度
📚 核心概念
| 概念 | 说明 |
|---|---|
| Shebang | Shebang 是本课核心技能点,实战中高频使用 |
| 变量 | 变量 是本课核心技能点,实战中高频使用 |
| 条件判断 | 条件判断 是本课核心技能点,实战中高频使用 |
| 循环 | 循环 是本课核心技能点,实战中高频使用 |
| 函数 | 函数 是本课核心技能点,实战中高频使用 |
| 参数传递 | 参数传递 是本课核心技能点,实战中高频使用 |
💡 提示:建议在 VPS 上跟着敲一遍命令,肌肉记忆比死记硬背更管用。
💻 实战命令速查
#!/bin/bash
作用:Shebang 指定解释器
#!/bin/bash
name="DevOps"
作用:定义变量
name="DevOps"
echo $name
作用:引用变量
echo $name
if [ $1 -gt 0 ]; then echo positive; fi
作用:条件判断
if [ $# -gt 0 ]; then echo "args: $#"; fi
for i in {1..5}; do echo $i; done
作用:for 循环
for i in {1..3}; do echo "Number: $i"; done
func() { echo "Hello $1"; }; func World
作用:定义函数
greet() { echo "Hi $1"; }; greet DevOps
$0 $1 $2
作用:脚本参数
$0=脚本名 $1=第一个参数
🛠️ 动手练习
建议在你的 VPS 上按顺序执行:
- 环境准备:确保 SSH 连通,有 sudo 权限
- 逐条实操:复制上方命令在终端运行,观察输出
- 变参数试:修改命令参数(如路径、端口、名称),看结果变化
- 组合用法:尝试管道、重定向组合多条命令
⚠️ 安全提醒:生产环境操作前,先在测试机/容器验证;重要数据操作前做快照/备份。
🧠 课后测验
完成上述练习后,做做测验巩固:
Q1. Shell 脚本第一行通常是什么?
-
-
!/bin/bash
-
-
-
!/usr/bin/python
-
-
-
!/bin/sh
-
-
-
!/usr/bin/env bash
-
👉 点击查看答案
**正确答案**:0. #!/bin/bash **解析**:#!/bin/bash 指定使用 bash 解释器执行脚本。Q2. 变量赋值正确语法是?
-
- name = 'value'
-
- name='value'
-
- $name='value'
-
- set name='value'
👉 点击查看答案
**正确答案**:1. name='value' **解析**:Shell 中变量赋值等号两边不能有空格。Q3. 循环遍历数组的语法?
-
- for i in ${arr[@]}
-
- for i in $arr
-
- foreach i in arr
-
- for i in arr
👉 点击查看答案
**正确答案**:0. for i in ${arr[@]} **解析**:${arr[@]} 展开数组所有元素。📈 进度检查
- [ ] 所有命令在 VPS 上跑通
- [ ] 测验全对(或复盘错题)
- [ ] 核心概念能用自己的话复述
- [ ] 命令不看文档能敲出来
➡️ 下一课预告
Lesson 13 将继续深入运维核心技能,敬请期待!
💻 实战命令速查
#!/bin/bash
Shebang 指定解释器
#!/bin/bash
name="DevOps"
定义变量
name="DevOps"
echo $name
引用变量
echo $name
if [ $1 -gt 0 ]; then echo positive; fi
条件判断
if [ $# -gt 0 ]; then echo "args: $#"; fi
for i in {1..5}; do echo $i; done
for 循环
for i in {1..3}; do echo "Number: $i"; done
func() { echo "Hello $1"; }; func World
定义函数
greet() { echo "Hi $1"; }; greet DevOps
$0 $1 $2
脚本参数
$0=脚本名 $1=第一个参数