前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >read命令从键盘中获取标准输入

read命令从键盘中获取标准输入

作者头像
前Thoughtworks-杨焱
发布于 2021-12-08 00:20:33
发布于 2021-12-08 00:20:33
2.1K00
代码可运行
举报
文章被收录于专栏:杨焱的专栏杨焱的专栏
运行总次数:0
代码可运行

read命令用法

read命令是用于从终端或者文件中读取输入的内部命令,read命令读取整行输入,每行末尾的换行符不被读入。在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY。下面的列表给出了read命令的常用方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
read 1987name
从标准输入读取输入并赋值给变量1987name。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
read first last
从标准输入读取输入到第一个空格或者回车,将输入的第一个单词放到变量first中,并将该行其他的输入放在变量last中。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
read
从标准输入读取一行并赋值给特定变量REPLY
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
read -a arrayname
把单词清单读入arrayname的数组里。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
read -p "text"
打印提示(text),等待输入,并将输入存储在REPLY中。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
read -r line
允许输入包含反斜杠。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
read -t 3
指定读取等待时间为3秒。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
read -n 2 var
从输入中读取两个字符并存入变量var,不需要按回车读取。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
read -d ":" var
用定界符“:”结束输入行。

read命令示例

从标准输入读取输入并赋值给变量1987name。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#read 1987name        #等待读取输入,直到回车后表示输入完毕,并将输入赋值给变量answer
HelloWorld             #控制台输入Hello

#echo $1987name       #打印变量
HelloWorld

等待一组输入,每个单词之间使用空格隔开,直到回车结束,并分别将单词依次赋值给这三个读入变量。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#read one two three
1 2 3                   #在控制台输入1 2 3,它们之间用空格隔开。

#echo "one = $one, two = $two, three = $three"
one = 1, two = 2, three = 3

REPLY示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#read                  #等待控制台输入,并将结果赋值给特定内置变量REPLY。
This is REPLY           #在控制台输入该行。


#echo $REPLY           #打印输出特定内置变量REPLY,以确认是否被正确赋值。

This is REPLY

-p选项示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#read -p "Enter your name: "            #输出文本提示,同时等待输入,并将结果赋值给REPLY。
Enter you name: stephen                  #在提示文本之后输入stephen

#echo $REPLY
stephen

等待控制台输入,并将输入信息视为数组,赋值给数组变量friends,输入信息用空格隔开数组的每个元素。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#read -a friends
Tim Tom Helen

#echo "They are ${friends[0]}, ${friends[1]} and ${friends[2]}."
They are Tim, Tom and Helen.

补充一个终端输入密码时候,不让密码显示出来的例子。

方法1:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
read -p "输入密码:" -s pwd
echo
echo password read, is "$pwd"

方法2:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
stty -echo
read -p "输入密码:" pwd
stty echo
echo
echo 输入完毕。

其中,选项-echo禁止将输出发送到终端,而选项echo则允许发送输出。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-05-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【linux命令讲解大全】053. Shell脚本中的read命令及其用法
read命令从键盘读取变量的值,通常在Shell脚本中用于与用户进行交互。该命令可以一次读取多个变量的值,变量和输入的值之间需要用空格隔开。如果未指定变量名,则读取的数据将自动赋值给特定变量REPLY。
全栈若城
2024/03/02
6330
Shell脚本内建命令
描述:以shell命令的形式执行参数。将ARGs组合成一个字符串,将结果作为shell的输入,并执行生成的命令。
全栈工程师修炼指南
2022/09/28
1.7K0
Shell脚本内建命令
Linux命令(46)——read命令
read命令是Shell内建命令,用于从标准输入或-u选项指定的文件描述符中读取单行,并将读取的单行根据IFS变量分割成多个字段,并将分割后的字段分别赋值给指定的变量列表var_name。第一个字段分配给第一个变量var_name1,第二个字段分配给第二个变量var_name2,依次到结束。如果指定的变量名少于字段数量,则多出的字段连同分隔符分配给最后一个var_name,如果指定的变量命令多于字段数量,则多出的变量赋值为空。如果没有指定任何var_name,则分割后的所有字段都存储在特定变量REPLY中。当然,其不仅可以赋值变量,还可以赋值数组。
恋喵大鲤鱼
2018/12/04
2.8K0
shell内部命令_rshell
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183806.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/27
2390
突破瓶颈:如何优化JavaSE标准输入输出性能
咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~
bug菌
2023/12/28
2440
突破瓶颈:如何优化JavaSE标准输入输出性能
案例驱动 :从入门到掌握Shell编程详细指南
阅读提示:阅读本文大约需要15分钟,本文结合了众多的实操案例,从入门到掌握shell编程,学习起来花费时间较久,建议收藏起来慢慢学习。
百思不得小赵
2022/12/01
1.1K0
案例驱动 :从入门到掌握Shell编程详细指南
Java输入输出
引言:在平时java开发中,被输入输出搞得头疼。特此写下这篇博客,一是为了总结输入输出,二是为了和大家分享。如果大家觉得写得好,就请高抬贵手点个赞呗!!!
全栈程序员站长
2022/07/21
1.6K0
Java输入输出
linux之read命令
原文链接:https://rumenz.com/rumenbiji/linux-read.html
入门笔记
2021/09/15
2.1K0
shell-脚本集合3
read命令是一个内置命令,用于从终端或文件读取输入(参见表14-1)。read命令读取一个输入行,直至遇到换行符。行尾的换行符在读入时将被转换成一个空 字符。如果read命令后未跟变量名,读入的行将被赋给内置变量REPLY。也可以用read命令来中断程序的运行,直至用户输入一个回车键。要知道如何 有效地使用read命令从文件读取输入行,请参见14.6节的“循环控制命令”。如果带-r选项,read命令将忽略反斜杠/换行符对,而把反斜杠作为行 的一部分。read命令有4个控制选项:-a,-e,-p,-r②。 表14-1 read命令 格式                含义 read answer       从标准输入读取一行并赋值给变量answer read first last   从标准输入读取一行,直至遇到第一个空白符或换行符。把用户键入的第一个词存到变量first中,把该行的剩余部分保存到变量last中 read              标准输入读取一行并赋值给内置变量REPLY read –a arrayname 读入一组词,依次赋值给数组arrayname③ read -e           在交互式shell命令行中启用编辑器。例如,如果编辑器是vi,则可以在输入行时使用vi命令③ read –p prompt    打印提示符,等待输入,并将输入赋值给REPLY变量③ read –r line      允许输入包含反斜杠③
py3study
2020/01/08
6860
第二十九章 : 读取键盘输入
The scripts we have written so far lack a feature common in most computer programs —interactivity. That is, the ability of the program to interact with the user. While manyprograms don’t need to be interactive, some programs benefit from being able to acceptinput directly from the user. Take, for example, this script from the previous chapter:
砖业洋__
2023/05/06
3320
Linux-read 命令(20)
Linux read 命令 参数说明: -a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。 -d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。 -p 后面跟提示信息(prompt),即在输入前打印提示信息。 -e 在输入的时候可以时候命令补全功能。 -n 后跟一个数字,定义输入文本的长度N,很实用。 -r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了。 -s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。 -t
诺谦
2018/12/13
2K0
Linux Shell基础篇三 - 内置命令
Shell 内置命令,就是由 Bash Shell 自身提供的命令,而不是文件系统中的可执行脚本文件。可使用type来确定一个命令是否是内置命令或可执行文件:
兜兜转转
2023/03/08
1.4K0
Linux Shell基础篇三 - 内置命令
Linux read的用法
4、read 命令中不指定变量,那么read命名将它收到的任何数据都放在特殊环境变量REPLY中
用户5807183
2019/07/15
3K0
Linux进阶命令和Shell编程
本文主要介绍了Linux命令行的一些常用命令,包括高级文本处理命令(如sed和awk)、文件操作命令(如touch、mkdir、rm、cp和mv)、文本搜索和排序命令(如grep、find、sort和uniq)以及shell脚本编程基础(如变量、运算符、循环和条件语句等)。此外,还介绍了Linux系统中的一些常用命令,如文件管理命令(如ls、cd、mkdir和rm)和文件处理命令(如touch、cat、grep和find)。
企鹅号小编
2018/01/09
1.7K0
Linux进阶命令和Shell编程
Linux 操作系统下的bash read命令
read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用重定向的时候,可以读取文件中的一行数据。
用户5005176
2021/08/10
2.4K0
Shell利剑之export、read和history
---- 概述 最近在学习shell,发现自己shell的强大,强大的已经被他征服。热爱shell,利用shell,珍惜生命。哈哈哈,现在最流行的两个shell:bash shell 和 zsh shell。 查看当前用户所使用的shell cat /etc/shells 或者 chsh -l #查看当前用户的所采用的SHELL echo $SHELL #更改用户登录的shell,设置完成并重新登录. chsh -s /bin/zsh export 命令 shell 有“环境变量”和“自定义变量”,环境变量
吕海峰
2018/04/03
1K0
shell programming tutorial
可以直接 man bash 学习语法和相关命令。 一、什么是shell程序 以文件形式存放批量的Linux命令集合,该文件能够被Shell解释执行,这种文件就是Shell脚本程序 通常由一段Linux
s1mba
2018/01/03
1.4K0
shell programming tutorial
C++_输入
cin对象”连接”到标准输入设备(一般是用户的键盘),用来存储IO流中的输入的数据(保存在cin的输入流缓冲区中)
用户10551528
2023/05/09
2510
C++_输入
Linux 命令(256)—— stty 命令
处理连接到标准输入的 tty 终端行设置。当不附加参数时,程序会输出波特率、行约束 规则以及与标准 stty 设置间的偏差。在设置中,字符会被逐字读取或是被编码为 ^c、 0x37、0177 或 127 这样的字符,其中有特殊值 ^- 或 undef 被用于禁止特殊字符。
恋喵大鲤鱼
2023/02/23
1.6K0
Shell 内建命令:Shell 的内在魔力
通常来说,内建命令会比外部命令执行得更快,执行外部命令时不但会触发磁盘 I/O,还需要 fork 出一个单独的进程来执行,执行完成后再退出。而执行内建命令相当于调用当前 Shell 进程的一个函数。
南山竹
2024/06/20
1390
Shell 内建命令:Shell 的内在魔力
相关推荐
【linux命令讲解大全】053. Shell脚本中的read命令及其用法
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文