read命令
时间:2022-07-28
本文章向大家介绍read命令,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
read命令
read
命令被用来从标准输入读取单行数据,这个命令可以用来读取键盘输入,当使用重定向以及默认选项的情况下,可以读取文件中的一行数据,此时read
会将换行符视为行尾,但是可以使用-d
选项更改。
语法
read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...] [name2 ...]
参数
-
-a array
: 将单词存储在一个名为array
的索引数组中,数组元素的编号从0
开始。 -
-d delim
: 将定界符设置为delim
,该字符表示行尾,如果未使用-d
,则默认行定界符为换行符。 -
-e
: 从shell
获取一行输入,用户手动输入字符,直到达到行分隔符为止。 -
-i text
: 当与-e
结合使用并且仅在不使用-s
的情况下,文本将作为输入行的初始文本插入,允许用户在输入行上编辑文本。 -
-n nchars
: 如果尚未达到行定界符,则在读取整数nchars
个字符后停止读取。 -
-N nchars
: 忽略行定界符,仅在已读取nchars
个字符,达到EOF
或读取超时之后才停止读取。 -
-p prompt
: 在开始读取之前,不使用换行符打印字符串提示符。 -
-r
: 使用原始输入,具体来说,这个选项使read
按字面意思解释反斜杠,而不是将它们解释为转义字符。 -
-s
: 当read
从终端获取输入时,不显示按键。 -
-t timeout
: 如果在超时秒内未读取完整的输入行,则超时并返回失败,如果超时值为零,那么read
将不会读取任何数据,但是如果输入可用于读取,则返回成功。如果未指定超时,则使用shell
变量TMOUT
的值(如果存在),超时值可以是小数,例如3.5
。 -
-u fd
: 从文件描述符fd
中读取而不是从标准输入中读取,文件描述符应该是一个small integer
。
示例
读取终端的输入,循环读入一直持续到按Ctrl + D
即EOF
为止,由于指定变量名text
,因此整行文本都存储在变量text
中,每当输入一行后按回车时,将会把输入的内容输出。
while read text
do echo "$text"
done
读取终端的输入,指定一个输入的超时时间。
if read -t 3 -p "Text: " text
then
echo "Text: $text"
else
echo -e "nTimeout"
fi
按行读取文件中的内容。
cat test.txt | while read line
do
echo "$line"
done
每日一题
https://github.com/WindrunnerMax/EveryDay
参考
https://www.computerhope.com/unix/bash/read.htm
https://www.runoob.com/linux/linux-comm-read.html
https://linuxize.com/post/how-to-read-a-file-line-by-line-in-bash/
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 萌新不看会后悔的C++基本类型总结(二)
- The Preliminary Contest for ICPC Asia Xuzhou 2019 徐州网络赛 A Who is better?
- 树的重心
- PostgreSQL 13:索引并行vacuum
- 『数据库』震惊,某博主为吸引眼球拿出压箱底SQL总结,如果你没看那就吃亏了!(超级详细的SQL基础,你还不会的话就别学数据库了)
- 萌新不看会后悔的C++基本类型总结(一)
- 2019 ICPC 银川网络赛 D. Take Your Seat (疯子坐飞机问题)
- 2019 ICPC 银川网络赛 H. Fight Against Monsters
- 状态压缩DP(大佬写的很好,转来看)
- 2019 ICPC 银川网络赛 F-Moving On (卡Cache)
- 树形结构--二叉树的遍历算法应用(十九)
- POJ1088 滑雪题解+HDU 1078(记忆化搜索DP)
- 2019 ICPC 南京网络赛 F Greedy Sequence
- 补题Codeforces 1102E. Monotonic Renumeration
- 2019 ICPC 南京网络赛 H-Holy Grail