Linux标准输入工具read命令详解

在Linux中,read命令用于从标准输入中读取单行,同时将字符串根据IFS变量分裂成多个字段,并将分割后的字段分别赋值给指定的数组array,若没有指定array,则所有字段都存储在特定变量REPLY中。

注意:若指定的变量array长度少于字段数量,则多出的字段全部存储在数组的最后一个变量中。

语法

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

参数说明

参数 说明
-a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符
-d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志
-e 在输入的时候可以使用命令补全功能
-n 后跟一个数字,定义输入文本的长度,很实用
-N 严格要求读满N个字符才自动结束读取,即使中途按下了回车或遇到了换行符也不结束
-p 后面跟提示信息,即在输入前打印提示信息
-r 屏蔽\,如果没有该选项,则\作为一个转义字符,有的话 \就是个正常的字符了
-s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码
-t 后面跟秒数,定义输入字符的等待时间
-u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的

实例

从键盘读取:

#!/bin/bash

echo "请输入姓名: "
read name
echo "你输入的姓名是:$name"
exit 0

指定提示信息:

#!/bin/bash

read -p "请输入姓名:" name
echo "你输入的姓名是:$name"
exit 0

指定等待时间(秒):

#!/bin/bash

if read -t 5 -p "请输入姓名:" namee
    then
    echo "你输入的姓名是:$name"
else
    echo "\n等待超时"
fi
exit 0

隐藏输入字符:

[root@web]# read -s -p "请输入密码:"
请输入密码:

[root@web ~]# echo $REPLY
123456

原创文章禁止转载:技术学堂 » Linux标准输入工具read命令详解

精彩评论

7+6=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏