0

0

linux读取标准输入内容是什么-read 命令使用与实例

P粉390130307

P粉390130307

发布时间:2025-07-20 09:48:01

|

618人浏览过

|

来源于php中文网

原创

linux读取标准输入内容是什么-read 命令使用与实例

Linux read 命令

Linux 中的 read 命令主要用于从标准输入获取数据。

作为 shell 的内置命令,read 可以用来读取标准输入的一行内容。不仅可以接收用户通过键盘输入的信息,在配合重定向时,也可以读取文件中的一行内容。

用法

read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]

参数介绍:

  • -a 指定一个变量名,该变量将被当作数组处理,并根据输入内容进行赋值,默认按空格分割。
  • -d 后面指定一个分隔符,仅第一个字符有效,用于标记输入结束。
  • -p 设置提示语句,在等待输入时显示。
  • -e 支持在输入过程中使用自动补全功能。
  • -n 指定输入字符的最大数量限制。
  • -r 禁止反斜杠转义功能,使 \ 被视为普通字符。
  • -s 静默模式,输入时不显示在终端上,常用于密码输入。
  • -t 定义等待输入的最长时间(单位为秒)。
  • -u 后接文件描述符编号,表示从此描述符读取输入。

示例说明

1、基础输入操作

#!/bin/bash

默认会换行输出

echo "请输入网站名称: "

获取用户输入

read website
echo "您输入的网站是 $website"
exit 0 # 结束脚本

运行结果如下:

请输入网站名称: 
www.runoob.com
您输入的网站是 www.runoob.com

2、使用 -p 参数添加提示信息

#!/bin/bash

read -p "请输入网站名称:" website echo "您输入的网站是 $website" exit 0

测试输出:

请输入网站名称:www.runoob.com
您输入的网站是 www.runoob.com

3、设置输入超时时间,使用 -t 参数

#!/bin/bash

if read -t 5 -p "请输入网站名称:" website then echo "您输入的网站是 $website" else echo "\n抱歉,已超时未输入。" fi exit 0

若等待超过 5 秒未输入:

请输入网站名称:
抱歉,已超时未输入。

4、除了设置时间限制,还可以通过 -n 参数限定输入字符的数量,当达到指定数量后立即结束输入。

#!/bin/bash

read -n1 -p "是否继续 [Y/N]?" answer case $answer in Y | y) echo "好的,继续执行";; N | n) echo "好的,再见";; *) echo "选择错误";;

esac exit 0

此例中,只要输入一个字符就会结束 read 命令,无需回车确认。

无涯·问知
无涯·问知

无涯·问知,是一款基于星环大模型底座,结合个人知识库、企业知识库、法律法规、财经等多种知识源的企业级垂直领域问答产品

下载

再比如限制只接受两个字符的输入:

#!/bin/bash

read -n2 -p "请输入任意两个字符: " any echo "\n您输入的字符是:$any" exit 0

运行示例:

请输入任意两个字符: 12
您输入的字符是:12

5、-s 参数可以让输入内容不显示在屏幕上(实际上只是将文字颜色设为与背景相同),适用于密码输入等场景。

#!/bin/bash

read -s -p "请输入密码:" pass echo "\n您输入的密码是 $pass" exit 0

执行时输入过程不会显示:

请输入密码:
您输入的密码是 runoob

6.从文件中逐行读取内容

每次调用 read 命令可以读取文件中的一行内容,当没有更多行可读时,返回非零状态码。

如何将文件内容传递给 read?通常使用 cat 命令结合管道将其输出传入 while 循环中的 read 命令。

假设 test.txt 文件内容如下:

123
456
runoob

测试脚本如下:

#!/bin/bash

count=1 # 初始化计数器 cat test.txt | while read line # 将文件内容通过管道传入循环 do echo "第 $count 行内容为: $line" count=$[ $count + 1 ] # 更新计数器 done echo "读取完成" exit 0

运行结果:

第 1 行内容为:123
第 2 行内容为:456
第 3 行内容为:runoob
读取完成

使用 -e 参数后,可以在输入时利用 Tab 键自动补全文件名(如当前目录下存在相关文件):

$ read -e -p "请输入文件名:" str 
请输入文件名:a
a.out    a.py     a.pyc    abc.txt
请输入文件名:a

相关专题

更多
while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

90

2023.09.25

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

1349

2023.06.21

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

703

2023.06.29

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

294

2023.06.30

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

776

2023.07.05

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

573

2023.07.06

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

545

2023.07.20

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

297

2023.07.20

java用途介绍
java用途介绍

本专题整合了java用途功能相关介绍,阅读专题下面的文章了解更多详细内容。

0

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.4万人学习

Git 教程
Git 教程

共21课时 | 2.8万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号