当前位置: 首页 > news >正文

shell脚本-read-输入

1.基础

最简单的用法是不带任何参数,直接读取用户输入,默认存入内置变量REPLY中。

#!/bin/bashecho"请输入一段话:"read# 等待用户输入echo"你输入的是:$REPLY"

2. 带提示符与变量赋值

实际开发中,我们通常会指定变量名来存储输入,并使用-p选项直接显示提示信息,这样比先用echo打印提示更简洁。

#!/bin/bashread-p"请输入你的名字: "nameread-p"请输入你的年龄: "ageecho"你好,$name!你今年$age岁。"

3. 静默输入(适合密码)

需要输入密码等敏感信息,不希望屏幕显示输入内容,可以使用-s选项。

#!/bin/bashread-sp"请输入密码: "passwdecho# 这里加一个换行,否则光标会紧跟在密码后面echo"密码已输入完毕(为了安全,这里不显示明文)"

4. 限制输入时间与字符数

场景 A:限时回答使用-t选项可以设置等待时间(秒)。如果用户在规定时间内没有输入,脚本会自动继续执行。

#!/bin/bashifread-t3-p"请在3秒内回答 (y/n): "answer;thenecho"你的选择是:$answer"elseecho"时间到,已默认选择否。"fi

场景 B:只读取特定字符使用-n选项可以限制读取的字符数量。例如,只需要用户按一个键来确认。

#!/bin/bashread-n1 -p"是否继续?(y/n): "choiceecho# 换行if["$choice"="y"];thenecho"继续执行..."elseecho"操作取消。"fi

5. 高级用法:数组与分隔符

场景 A:读取为数组如果你希望用户输入一串用空格分隔的内容(如多个文件名),可以使用-a将其存入数组。

#!/bin/bashread-a file_list -p"请输入要处理的文件名(空格分隔): "echo"你选择了${#file_list[@]}个文件:"forfilein"${file_list[@]}";doecho" -$file"done

场景 B:自定义结束符默认情况下,read遇到回车键(换行符)才结束。使用-d可以指定其他字符作为结束标志。例如,以#号结束输入。

#!/bin/bashread-d'#'-p"请输入文本(以 # 号结束输入): "contentechoecho"你输入的内容是:$content"

总结:常用选项

选项作用典型场景
-p "提示"显示提示信息通用的输入交互
-s静默输入(不回显)输入密码、密钥
-t 5设置超时时间(秒)防止脚本长时间挂起
-n 1限制读取字符数简单的 yes/no 选择
-a arr将输入存入数组批量处理多个参数
-r原始模式(不转义\输入包含路径或特殊符号

特别提示:读取文件

除了读取键盘,read还常用于逐行读取文件。通常结合while循环使用,这是处理文本文件(如配置文件)的常用技巧:

# 读取文件内容whilereadline;doecho"处理行:$line"done<filename.txt
http://www.zskr.cn/news/118523.html

相关文章:

  • 5 款 AI 写论文哪个好?深度横评后,才发现虎贲等考 AI 是学术圈隐藏的 “六边形战士”!
  • 虎贲等考 AI:不打扰你的原创,只照亮学术征途,陪你探索每一寸知识边疆
  • Python-while循环-99乘法表
  • 让AI语音成为桥梁,而不是替代
  • EmotiVoice支持自定义情感标签训练,拓展应用场景
  • EmotiVoice支持中文普通话情感合成,语调自然流畅
  • DownKyi终极指南:B站视频下载与批量处理完整教程
  • Lemonade:本地大语言模型服务的终极指南
  • EmotiVoice语音合成引擎的灰度发布策略设计
  • Home Assistant Mini Graph Card 终极指南:简单快速的可视化图表卡片安装教程
  • trt_pose完整入门指南:快速掌握实时姿态估计算法
  • EmotiVoice自动扩缩容方案设计(Kubernetes)
  • C++高性能格式化缓冲区:为什么fmtlib选择vector<char>而非string?
  • 45、C News系统配置与管理指南
  • 智能提示工程:从入门到精通的实战指南
  • EmotiVoice能否实现多人对话同步生成?技术可行性评估
  • 优秀学员统计 100分(python、java、c++、js、c)
  • 静态代码扫描服务 100分(python、java、c++、js、c
  • 如何快速构建AI工作流:cube-studio可视化编排终极指南
  • EmotiVoice语音合成质量评测:MOS评分达4.6+/5.0
  • 如何在电脑查询内存硬件的方式
  • 现代Python包管理工具效能对比:uv与pip深度评测
  • 【数据结构】主席树 可持久化线段树
  • ImageOptim跨版本兼容性:5个关键问题及其技术解决方案
  • ChromePass终极指南:轻松提取Chrome浏览器保存的密码
  • 4、增强现实应用的硬件检测与位置服务使用指南
  • Exo分布式AI集群资源管理终极指南:让闲置设备变身高性能AI服务器
  • YT29A凿岩机张家界实地测评2025
  • 5分钟搞定实时语音识别:FunASR流式模型实战指南
  • Draft.js工具栏深度定制:从零构建企业级编辑体验