Linux中read命令的简介及使用方法

发布时间:2020-08-17 16:40:04

来源:亿速云

阅读:107

作者:小新

这篇文章给大家分享的是有关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中read命令的简介及使用方法相关推荐

  1. python中divmod函数的用法_Python中divmod函数的用法

    Python中divmod函数的用法,语言,余数,是一种,面向对象,函数 Python中divmod函数的用法 Python中divmod函数的用法 在Python中divmod函数的作用是把除数和余 ...

  2. python中sorted函数的用法_Python3 中sorted() 函数的用法

    描述 sorted() 函数对所有可迭代的对象进行排序操作. 语法 sorted(iterable, key=None, reverse=False) iterable – 可迭代对象. key – ...

  3. python中pop函数的用法_python中pop()函数怎么用

    python中pop()函数的用法:pop()函数用于移除列表中的一个元素(默认最后一个元素),并且返回从列表中移除的元素对象.函数语法:[list.pop(ojb=list[-1])]. pop() ...

  4. python中set()函数的用法,python中set()函数简介及实例解析

    python中set()函数简介及实例解析 set函数也是python内置函数的其中一个,属于比较基础的函数.其具体介绍和使用方法,下面进行介绍. set() 函数创建一个无序不重复元素集,可进行关系 ...

  5. python中字符串函数的用法_python中字符串内置函数的用法介绍(代码)

    本篇文章给大家带来的内容是关于python中字符串内置函数的用法介绍(代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. capitalize() 首字母大写a='somewor ...

  6. [转载] python中string函数的用法_python中string模块各属性以及函数的用法

    参考链接: Python中的string.octdigits 任何语言都离不开字符,那就会涉及对字符的操作,尤其是脚本语言更是频繁,不管是生产环境还是面试考验都要面对字符串的操作. python的字符 ...

  7. python中字符串函数的用法_python中字符串内置函数的用法总结

    capitalize() 首字母大写 a='someword' b=a.capitalize() print(b) ->Someword casefold()&lower() 所有字母变 ...

  8. python power函数_python中pow函数的用法_python中pow函数用法及功能说明

    幂运算是高更数学的应用学科,是一种关于幂的数学运算.同底数幂相乘,底数不变,指数相加.同底数幂相除,底数不变,指数相减.幂的乘方,底数不变,指数相乘.适用于精确计算领域. 计算机作为精确计算的一种方式 ...

  9. python中pow函数的用法_python中pow函数用法及功能说明

    幂运算是高更数学的应用学科,是一种关于幂的数学运算.同底数幂相乘,底数不变,指数相加.同底数幂相除,底数不变,指数相减.幂的乘方,底数不变,指数相乘.适用于精确计算领域. 计算机作为精确计算的一种方式 ...

最新文章

  1. C#计算两个日期的相隔天数
  2. Rabbitmq 极简实现
  3. Windows Server2008安装mysql5.6出现程序无法正常启动(0xc000007b)
  4. 免费版最好用功能强大方便快捷的计算器Calculator#出炉~
  5. jvm垃圾内存回收问题
  6. Holedox Moving
  7. linux 网络相关,Linux系统管理员必备的21个网络相关监控
  8. 论文赏析[ACL18]基于Self-Attentive的成分句法分析
  9. 【每日一知】什么是TAOCP? (2021.02.07)
  10. Zynq-PS-SDK(14) 之 OV5640-HDMI 视频通路硬件搭建
  11. 这次是90城的数据!中国90座城市建筑物屋顶矢量数据集(2020)
  12. 今秋新iPhone将采用更大容量电池?外媒称最低3110mAh 较iPhone XR提升5%
  13. 【原创】博物馆库房环境空气质量无线温湿度监控技术性方案
  14. 【蓝桥杯省赛JavaB组真题详解】立方变自身(2015)
  15. 最新的三星android版本号,三星率先公布Android 12/13升级机型名单,可惜S9/Note9被抛弃...
  16. 蓝奏云打不开解决方法
  17. 微软speeh sdk5.1安装及简单的读取文字
  18. python设备分组(部门分组等)功能设计
  19. 电子计算机与多媒体课件背景,演示型多媒体课件应用与设计原则
  20. 继续摘抄:postfix最新源码病毒过滤和反垃圾实战篇

热门文章

  1. 什么是RTOS?RTOS与普通操作系统的区别
  2. js 函数闭包内部返回函数体调用方法难点解答
  3. 快手磁力聚星浪漫七夕活动圆满收官
  4. 钉钉小程序图表刷新 antv-f2
  5. 在线 面对这样一个在线世界,唯一的限制就是我们的想象力
  6. 华为鸿蒙创始人,华为鸿蒙操作系统怎样 华为创始人任正非:苹果是隐私榜样...
  7. 基础算法:Hanoi塔(递归)
  8. php免费短信接,PHP实现飞信接口来通过网页免费发短信
  9. 常用的几种PPT做图小技巧!
  10. SpringCloud系列之六