📖 知识点
1. 脚本里的变量
#!/bin/bash
name="小明" # 定义变量(等号两边无空格)
echo "你好,$name" # 用 $变量名 读取
变量存数据,用
$变量名读取。名字自己定,等号两边不能有空格。
2. 读取用户输入:read
#!/bin/bash
echo "请输入你的名字:"
read name # 等待用户输入,存进变量name
echo "你好,$name!"
read 变量名会停下来等用户输入,回车后存进变量。
3. if 判断
if [ 条件 ]; then
执行A
else
执行B
fi
结构:
if开始,then接条件成立的分支,else不成立分支,最后fi结束(if 倒过来写)。
常用条件比较:
| 写法 | 含义 |
|---|---|
| 字符串相等 |
| 数字大于 5(-gt) |
| 文件存在 |
4. 完整示例(输入 + 判断)
#!/bin/bash
echo "请输入一个数字:"
read n
if [ $n -gt 10 ]; then
echo "$n 大于 10"
else
echo "$n 不大于 10"
fi
⚠️ 易错提醒
变量赋值
name="小明"等号两边无空格,读取用$name
read 变量会等用户输入,回车才继续if 的写法是
if [ 条件 ]; then ... fi,then前要有分号;,结束要fi
⚔️ Kata 实战任务
任务需求:
用 vim 创建脚本
greet.sh脚本里:定义变量、用 read 读取用户名字、用 if 判断用户输入的名字是不是 "admin"
运行脚本,输入不同内容,观察判断结果
体会变量 + 输入 + 判断的组合
参考代码(在终端依次敲)
# 1. 创建脚本
vim greet.sh
# 内容:
# #!/bin/bash
# echo "请输入你的名字:"
# read name
# if [ "$name" = "admin" ]; then
# echo "欢迎管理员 $name!"
# else
# echo "你好,普通用户 $name!"
# fi
# (:wq 保存退出)
# 2. 运行,输入 admin
bash greet.sh
# 3. 再运行,输入其他名字
bash greet.sh
运行示例:
user@linux:~$ bash greet.sh
请输入你的名字:
admin
欢迎管理员 admin!
user@linux:~$ bash greet.sh
请输入你的名字:
小明
你好,普通用户 小明!
💡 观察:脚本会停下来等你输入,然后判断 —— 输入
admin走 "管理员" 分支,输入其他走 "普通用户" 分支。变量存数据、read 收输入、if 做判断,三者配合让脚本 "有脑子" 了。
🧠 思考题
read name的作用是什么?脚本执行到这一行时会发生什么?if [ "$name" = "admin" ]里的[ ]和=各表示什么?fi为什么不能省?
行者孙Python