Appearance
read 命令
基本用法
读取输入
bash
#!/bin/bash
# 读取用户输入
echo "请输入你的名字:"
read name
echo "你好, $name!"读取多个变量
bash
#!/bin/bash
# 读取多个变量
echo "请输入姓名和年龄:"
read name age
echo "姓名: $name"
echo "年龄: $age"选项
-p 选项
bash
#!/bin/bash
# 使用 -p 选项显示提示
read -p "请输入你的名字: " name
echo "你好, $name!"-n 选项
bash
#!/bin/bash
# 使用 -n 选项限制读取字符数
read -n 1 -p "按任意键继续..."
echo ""
echo "继续执行..."-s 选项
bash
#!/bin/bash
# 使用 -s 选项隐藏输入
read -s -p "请输入密码: " password
echo ""
echo "密码已输入"-t 选项
bash
#!/bin/bash
# 使用 -t 选项设置超时
read -t 5 -p "请输入你的名字(5秒内): " name
if [ -z "$name" ]; then
echo "超时"
else
echo "你好, $name!"
fi-d 选项
bash
#!/bin/bash
# 使用 -d 选项设置分隔符
read -d ":" -p "请输入文本(以冒号结束): " text
echo "你输入了: $text"读取文件
逐行读取
bash
#!/bin/bash
# 逐行读取文件
while IFS= read -r line; do
echo "$line"
done < input.txt读取到数组
bash
#!/bin/bash
# 读取文件到数组
readarray -t lines < input.txt
# 遍历数组
for line in "${lines[@]}"; do
echo "$line"
done实用示例
示例1:交互式菜单
bash
#!/bin/bash
# 显示菜单
echo "请选择操作:"
echo "1) 创建文件"
echo "2) 删除文件"
echo "3) 查看文件"
echo "4) 退出"
# 读取用户选择
read -p "请输入选项: " choice
# 处理用户选择
case $choice in
1)
echo "创建文件"
;;
2)
echo "删除文件"
;;
3)
echo "查看文件"
;;
4)
echo "退出"
exit 0
;;
*)
echo "无效的选项"
;;
esac示例2:密码输入
bash
#!/bin/bash
# 读取用户名
read -p "用户名: " username
# 读取密码(隐藏)
read -s -p "密码: " password
echo ""
# 确认密码
read -s -p "确认密码: " password_confirm
echo ""
# 验证密码
if [ "$password" = "$password_confirm" ]; then
echo "密码设置成功"
else
echo "密码不匹配"
fi示例3:读取配置
bash
#!/bin/bash
# 读取配置文件
while IFS='=' read -r key value; do
# 跳过注释和空行
[[ "$key" =~ ^#.*$ ]] && continue
[[ -z "$key" ]] && continue
# 处理配置
echo "配置: $key = $value"
done < config.conf示例4:批量处理
bash
#!/bin/bash
# 读取文件列表
read -p "请输入文件列表(空格分隔): " files
# 处理文件列表
for file in $files; do
if [ -f "$file" ]; then
echo "处理文件: $file"
else
echo "文件不存在: $file"
fi
done最佳实践
1. 使用 -p 选项
bash
# 好的做法
read -p "请输入你的名字: " name
# 不好的做法
echo "请输入你的名字:"
read name2. 使用 -s 选项
bash
# 好的做法
read -s -p "密码: " password
echo ""
# 不好的做法
read -p "密码: " password3. 使用 -t 选项
bash
# 好的做法
read -t 5 -p "请输入: " input
# 不好的做法
read -p "请输入: " input总结
read 命令的关键点:
- 基本用法:
read variable - 选项:
-p、-n、-s、-t、-d - 读取文件:使用
while循环逐行读取 - 实用示例:交互式菜单、密码输入、读取配置、批量处理
- 最佳实践:使用
-p选项、使用-s选项、使用-t选项
下一节我们将学习管道的使用。