每日linux命令学习-read命令

read命令

作用

从标准输入中读取一行。

语法

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

描述

read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量。

标志

-e 在一个交互式 shell 中使用 readline 获取行。

-s 输入回显设置,能够使read命令中输入的数据不显示在监视器上。

-r 不允许反斜杠转义任何字符

-p 输出提示语句。

-n 命令计数,指定read后面的变量所接收的字符个数,而不是等到读取换行符,但是分隔符仍然有效。

-N 在准确读取了 nchars 个字符之后返回,除非遇到了文件结束符或者读超时,任何的分隔符都被忽略

-t 计时输入,指定read命令等待输入的秒数,当计时满时,read命令返回一个非零退出状态。

-a 将词语赋值给 ARRAY 数组变量的序列下标成员,从零开始

-d 持续读取直到读入 DELIM 变量中的第一个字符,而不是换行符。

-i  使用 TEXT 文本作为 readline 的初始文字

-u fd 从文件描述符 FD 中读取,而不是标准输入
 

退出状态

这个命令返回下列出口值:

0 成功完成;

>0 检测到文件结束符或一个错误发生。

示例

下列脚本打印一个文件,这个文件中每行的第一个字段被移动到本行的末尾。

while read -r xx yy

do

         print printf "%s %s/n" $yy $xx

done < InputFile读取一行,把它分成字段,并使用 "Please enter: " 作为提示符,请输入:

read word1?"Please enter:  " word2系统显示:

Please enter:

You enter:

hello world变量 word1 的值应该是 "hello",变量 word2 应该是 "world."

为创建一个共同进程,用 print -p 写到共同进程,并用 read -p 从共同进程中读取输入,请输入:

(read; print "hello $REPLY")

print -p "world"

read-p line变量 line 的值应该是 "hello world."

为把输入行的副本保存为历史文件中的一个命令,请输入:

read -s line < input_file如果输入文件包含 "echo hello world," ,那么在历史记录文件中将会把 "echo hello world" 保存为一个命令。

原文地址:https://www.cnblogs.com/yy20141204bb/p/4930782.html