read
命令被用来从标准输入读取单行数据,这个命令可以用来读取键盘输入,当使用重定向以及默认选项的情况下,可以读取文件中的一行数据,此时read
会将换行符视为行尾,但是可以使用-d
选项更改。
-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
中,每当输入一行后按回车时,将会把输入的内容输出。
读取终端的输入,指定一个输入的超时时间。
按行读取文件中的内容。