news 2026/4/16 18:15:25

shell脚本-read-输入

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 14:50:14

EmotiVoice赋能有声书制作:自动生成带情节情绪的朗读

EmotiVoice赋能有声书制作&#xff1a;自动生成带情节情绪的朗读 在有声内容爆发式增长的今天&#xff0c;听众早已不满足于“能听就行”的机械朗读。一部真正打动人心的有声书&#xff0c;需要语气的起伏、情感的流动&#xff0c;甚至角色性格的细微差别——这些原本只能由专业…

作者头像 李华
网站建设 2026/4/15 23:55:50

情人节专属:用爱人声音生成甜蜜告白

情人节专属&#xff1a;用爱人声音生成甜蜜告白 在智能语音助手每天机械地报天气、设闹钟的今天&#xff0c;你有没有想过——它也能轻声说一句&#xff1a;“亲爱的&#xff0c;我想你了”&#xff1f;而且&#xff0c;是用你爱人的声音。 这听起来像科幻电影的情节&#xff0…

作者头像 李华
网站建设 2026/4/16 10:20:29

让AI语音成为桥梁,而不是替代

让AI语音成为桥梁&#xff0c;而不是替代 在虚拟助手机械地念出天气预报、有声书用千篇一律的语调讲述跌宕起伏的故事时&#xff0c;我们不禁要问&#xff1a;为什么技术越先进&#xff0c;声音反而越“不像人”&#xff1f; 语音的本质是情感的载体。人类交流中超过70%的信息…

作者头像 李华
网站建设 2026/4/16 10:20:53

少数民族语言支持计划:EmotiVoice在行动

少数民族语言支持计划&#xff1a;EmotiVoice在行动 在云南红河的清晨&#xff0c;一位哈尼族老人用母语讲述着古老的迁徙传说。这段声音被录下后&#xff0c;仅用了8秒钟音频和一段数字化文本&#xff0c;一个属于他音色的“数字分身”便开始朗读更多未曾录制过的古歌——语气…

作者头像 李华
网站建设 2026/4/16 10:20:19

EmotiVoice在安静/嘈杂环境下的播放效果

EmotiVoice在安静与嘈杂环境下的语音表现力解析 在车载导航提示音被引擎轰鸣淹没、有声书朗读因语调平直而令人昏昏欲睡的今天&#xff0c;用户对语音交互的真实感和适应性提出了前所未有的高要求。传统TTS系统虽然能“说话”&#xff0c;却常常“无情”也“无魂”。而EmotiVoi…

作者头像 李华
网站建设 2026/4/16 10:20:08

EmotiVoice在直播场景的应用设想:实时生成主播语音

EmotiVoice在直播场景的应用设想&#xff1a;实时生成主播语音 在一场深夜的带货直播中&#xff0c;弹幕突然刷起“主播累了&#xff0c;快休息吧”。镜头前的真人主播确实已连续讲解三小时&#xff0c;声音略显疲惫。但就在此时&#xff0c;画面一转——一个音色几乎完全一致、…

作者头像 李华