linuxread指令(Linux read命令的使用)
linuxread指令
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命令的资料请关注开心学习网其它相关文章!
- centos7宝塔面板离线安装(linux centos 宝塔面板和安全狗安装过程记录)
- linux增加静态路由(Linux添加静态路由两种实现方法解析)
- linux机器重启了docker容器还在不(Linux下docker 容器退出bash的两种实现方法)
- linux启动失败原因(安装主机大师Linux遇到bash: sudo: command not found 解决办法)
- windows终端远程连接linux服务器(linux通过跳板机连接远程服务器并进行文件传输的方法)
- linux用nvm安装nodejs(nodejs管理工具nvm安装过程详解)
- linux双网卡热备配置超详细(linux 使用bond实现双网卡绑定单个IP的示例代码)
- linuxmysql怎么设置root密码(Linux mysql-5.6如何实现重置root密码)
- linux如何搭建ftp服务器(Linux下搭建ftp服务器)
- linux中apache是否启动怎么查看(Linux apache取消300错误页面Multiple Choices简单步骤)
- linux中pwd怎么用(WDCP控制面板的常用linux命令集)
- 宝塔面板程序目录(将宝塔面板linux版装在/www以外的目录的方法)
- 怎么查询linux的selinux状态(如何理解Linux下的SELinux)
- ubuntu20.04安装启动问题(安装ubuntu18.04报:failed to load ldlinux.c32的问题及解决步骤)
- 如何搭建个人网盘dedecms(linux和windows主机实现dedecms伪静态)
- linux下安装nginx常见问题(Linux安装Nginx步骤详解)
- 今天是什么日子(今天是什么日子有什么特殊意义吗)
- 这里输入关键词(怎么输入关键词搜索)
- 34岁的舒畅,就这样走到了末路,不知会不会后悔15年前的草率决定(就这样走到了末路)
- 不走心的古装造型 舒畅 毁容式 出演,萧蔷雷出新高度(不走心的古装造型)
- 嘉南传 第22集(嘉南传第22集)
- 哪版孙悟空最萌 黄渤躺萌了(哪版孙悟空最萌)
热门推荐
- html5拖拽标签(Html5原生拖拽相关事件简介以及基础实现)
- laravel架构设置(Laravel框架查询构造器 CURD操作示例)
- list使用linq排序
- python中mat文件怎么读(Python第三方库h5py_读取mat文件并显示值的方法)
- nginx负载均衡原理3种(Nginx负载均衡以及动静分离的原理与配置)
- canvas绘制图形方法(如何使用canvas绘制可移动网格的示例代码)
- MVC中报get_RazorKeywords()错误的解决方法
- mysql的索引及其介绍总结(浅析MysQL B-Tree 索引)
- css浮动位置讲解(深入理解css布局之定位与浮动)
- vue表单上传图片数据(vue-cropper插件实现图片截取上传组件封装)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9