Linux read 命令 - 读取输入数据并赋值给变量
• 最后修改:2025-09-04 • 阅读量:221
read ( 英文名称:read ) 是 Linux / FreeBSD 系统中 Shell 的一个内置命令,它的功能时从标准输入读取数据并赋值给变量。
本文将为你介绍 read
命令的使用方法,使你对 read
命令具有基本的了解,方便你使用该命令读取数据,并赋值给变量。
read 命令语法结构
如下给出 read
命令的基本语法结构:
read [-options] [variable_name(s)]
语法结构中组成部分的解释说明:
-options
:读取数据时使用的控制选项variable_name(s)
:用于赋值的变量名称,多个变量时使用分隔符自动拆分,默认分隔符为:空格/制表符
命令的返回值说明:
- 成功读取:返回状态码 0
- 超时/EOF:返回非零状态码
- 无变量指定时:内容存储在
REPLY
系统变量中
特殊变量:
变量 | 说明 |
---|---|
REPLY |
未指定变量时的默认存储位置 |
IFS |
输入字段分隔符(默认:空格/制表符/换行) |
$? |
读取操作的状态返回值 |
read 命令使用示例
1. 直接读取数据赋值变量
使用命令的默认配置(即:不提供选项),提供变量名称,读取内容赋值给变量:
read username
执行命令后,等待用户输入内容,按回车结束输入内容。
验证输入的内容:
echo $username
2. 设置输入超时
可以使用 -t
选项设置输入时间的限制,最好配合 -p
选项,来提示设置的超时信息:
read -t 10 -p "10秒内输入验证码:" code
如上示例:设置超时间为 10 秒,默认的单位为秒,并使用 -p
设置了提示信息。
3. 隐藏输入密码
使用 -s
选项能够隐藏输入的信息:
read -s -p "输入密码:" password
4. 赋值多个变量
一次赋值多个变量,变量使用空格
或Tab
分割,输入的内容也使用空格
或Tab
分割,按换行结束输入内容:
read first_name last_name
5. 限制输入字符数量
使用 -n
选项,限制输入字符的数量:
read -n 5 -p "输入5字符ID:" user_id
如上示例:最多只能输入 5 个字符,输入 5 个字符后自动结束输入;如果要提前结束输入,按 Enter 键。
6. 自定义分隔符
使用 IFS
环境变量,自定义输入内容的分隔符:
IFS="," read city country <<< "Paris,France"
注意:不能自定义变量的分隔符。
7. 读取内容到数组
使用 -a
选项后,提供的一个变量会作为数组变量,把所有内容赋值给数组元素:
read -a colors
输入内容,以默认分隔符分割的一个段为一个数据。
read 命令选项详解
如下给出 read 命令选项的详细解释说明:
选项 | 说明 | 兼容性 |
---|---|---|
-a array |
读取内容赋值给数组 | Bash / Zsh / Ksh |
-d delim |
设置结束分隔符(默认为换行符) | 所有 Shell |
-e |
使用 Readline 库 | Bash |
-i text |
提供默认输入文本 | Bash |
-n nchars |
读取指定数量的字符数后结束 | 所有 Shell |
-N nchars |
精确读取 n 个字符,输入的是结束符,也会作为输入数据 | Bash |
-p prompt |
显示提示文本 | 所有 Shell |
-r |
禁用反斜杠转义 | 所有 Shell |
-s |
隐藏输入的内容 | 所有 Shell |
-t timeout |
设置超时秒数 | 所有 Shell |
-u fd |
从文件描述符读取内容 | 所有 Shell |
结语
本文全面的介绍了 read
的语法结构及其功能,并给出了 read
命令的具体使用示例,相信你能够对 read
命令有个基本的了解,并帮助你正确的使用 read
读取内容并赋值变量。 read
命令可以在 Linux 各发行版和 FreeBSD 系统中使用,基本功能是相同的。