read 是 linux shell 中读取用户输入的内置命令,支持存入变量、多变量读取、-p 提示、-s 隐藏密码、-t 超时、-n 单字符、-d 自定义结束符、-r 禁用转义等选项。

在 Linux Shell 脚本中,读取用户在终端输入的内容,最直接、最常用的方式就是使用 read 命令。它是一个 Bash 内置命令,无需安装,专为交互式输入设计。
基础用法:把输入存进变量
只需一行命令就能完成输入捕获:
-
read name—— 等待用户输入,按回车后,整行内容(不含换行符)自动赋值给变量name - 若不指定变量名,输入会默认存入系统变量
REPLY - 支持一次读多个变量:
read first last,用户输入Alice Smith,则first=Alice,last=Smith
带提示的输入体验更友好
避免先用 echo 再用 read 的两步写法,直接用 -p 选项:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
-
read -p "请输入邮箱: " email—— 提示信息显示在同一行,光标紧跟其后 - 提示文字不自动换行,输入完成后才跳到下一行,界面更紧凑
安全输入密码或敏感信息
用 -s 选项隐藏键盘回显,防止旁观者看到输入内容:
-
read -s -p "密码: " passwd—— 用户敲字无显示,回车后才继续 - 注意:输入结束后需手动加
echo换行,否则后续输出会挤在密码提示同一行
控制输入行为的实用选项
根据脚本需求灵活调整读取逻辑:
-
-t 3:最多等 3 秒,超时自动跳过,避免脚本卡住 -
-n 1:只读 1 个字符(如按任意键继续),不用按回车 -
-d ":":把冒号:当作结束符,而非默认的回车 -
-r:禁用反斜杠转义,保留原始输入中的\n、\t等字面含义










