• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux read命令的使用

    1.命令简介

    read命令是Shell内建命令,用于从标准输入或-u选项指定的文件描述符中读取单行,并将读取的单行根据IFS变量分割成多个字段,并将分割后的字段分别赋值给指定的变量列表var_name。第一个字段分配给第一个变量var_name1,第二个字段分配给第二个变量var_name2,依次到结束。如果指定的变量名少于字段数量,则多出的字段连同分隔符分配给最后一个var_name,如果指定的变量命令多于字段数量,则多出的变量赋值为空。如果没有指定任何var_name,则分割后的所有字段都存储在特定变量REPLY中。当然,其不仅可以赋值变量,还可以赋值数组。

    IFS(Internal Field Separator)变量是Shell内建的环境变量,用于read命令将读取的单行分隔为多个字段。默认取值为。

    REPLY变量也是Shell内建的环境变量,当read命令未指明接收变量时,用于接收read命令读取的单行内容。

    2.命令格式

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

    3.选项说明

    -a [aname]:将分裂后的字段依次存储到指定的数组中,存储的起始位置从数组的下标0开始
    -d [delim]:后跟一个标志符,只有第一个字符有用,用以取代换行符作为行的结束标志
    -e:在输入的时候可以使用命令补全功能,使用Tab键可自动不全当前目录下文件
    -i [text]:If readline is being used to read the line, text is placed into the editing buffer before editing begins
    -n [nchars]:后跟一个数字,定义输入文本的长度,而不是读取整行
    -N [nchars]:后跟一个数字,定义输入文本的长度,而不是读取整行。但是如果一行不足nchars个字符,则忽略行分隔符继续读取下一行
    -p [prompt]:从终端读取输入时,在输入前打印提示信息
    -r:屏蔽反斜杠\,如果没有该选项,则\作为一个转义字符,有的话\就是个正常的字符了
    -s:安静模式,在输入字符时不再屏幕上显示,例如login时输入密码
    -t [timeout]:后面跟秒数,定义输入字符的等待时间
    -u [fd]:后面跟文件描述符fd,从文件描述符中读取

    4.常用示例

    (1)如果没有指定变量,read会把传入的值传给REPLY,只要调用REPLY,只要调用REPLY,只要调用REPLY就可以引用。

    [root@TENCENT64 ~]# read;echo "\$REPLY:$REPLY"
    dablelv
    $REPLY:dablelv

    (2)read从终端读取时指定一个提示语

    [root@TENCENT64 ~]# read -p"input u password:";echo "\$REPLY:$REPLY"
    input u password:123456
    $REPLY:123456

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

    #!/bin/bash
    
    if read -t 5 -p "输入网站名:" name
    then
      echo "你输入的网站名是 $website"
    else
      echo "\n抱歉,你输入超时了。"
    fi
    exit 0

    执行程序不输入,等待5秒后:

    输入网站名:
    抱歉,你输入超时了

    (4)除了控制输入时间,还可以使用-n选项控制输入的字符数量。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量。例如只接收2个输入就退出:

    #!/bin/bash
    
    read -n2 -p "请随便输入两个字符: " any
    echo "\n您输入的两个字符是:$any"
    exit 0

    (5)-s选项能够使输入的数据不显示在命令终端上(实际上,输入的内容是显示的,只是read命令将文本颜色设置成与背景相同的颜色)。输入密码常用这个选项。

    #!/bin/bash
    
    read -s -p "请输入您的密码:" pass
    echo "\n您输入的密码是 $pass"
    exit 0

    执行程序输入密码后是不显示的:

    请输入您的密码:
    您输入的密码是 runoob

    (6)读取文件

    每次调用 read 命令都会读取文件中的 “一行” 文本。当文件没有可读的行时,read 命令将以非零状态退出。

    while read var1 var2
    do
    	echo $var1 $var2
    done < file.txt

    以上就是Linux read命令的使用的详细内容,更多关于Linux read命令的资料请关注脚本之家其它相关文章!

    上一篇:Linux chkconfig 命令的使用
    下一篇:IIS7 IIS8 http自动跳转到HTTPS(80端口跳转443端口)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux read命令的使用 Linux,read,命令,的,使用,Linux,