(转)Shell中read的用法详解
Shell中read的用法详解
原文:http://blog.csdn.net/jerry_1126/article/details/77406500
read的常用用法如下:
read -[pstnd] var1 var2 ...
-p 提示语句
-n 字符个数
-s 屏蔽回显
-t 等待时间
-d 输入分界
- 01). read # 从标准输入读取一行并赋值给特定变量REPLY
- root@linux~# read
- Hello,World!
- root@linux~# echo $REPLY
- Hello,World!
- 02). read name # 从标准输入读取输入并赋值给变量name
- root@linux~# read name
- Jerry
- root@linux~# echo $name
- Jerry
- 03). read var1 var2 # 第一个变量放置于var1,第二个变量放到var2
- root@linux~# read firstname lastname
- Jerry Gao
- root@linux~# echo "firstname:$firstname lastname:$lastname"
- firstname:Jerry lastname:Gao
- 04). read -p "text" # 打印提示'text',等待输入,并将输入存储在REPLY中
- root@linux~# read -p 'Please Enter your name:-->'
- Please Enter your name:-->Jerry
- root@linux~# echo $REPLY
- Jerry
- 05). read -p "text" var # 打印提示'text',等待输入,并将输入存储在VAR中
- root@linux~# read -p 'Please Enter your name:-->' name
- Please Enter your name:-->Jerry
- root@linux~# echo $name
- Jerry
- 06). read -p "text" var1 var2 # 打印提示'text',等待输入,将变量分别存储在var1,var2...
- root@linux~# read -p 'What your name? ' firstname lastname
- What your name? Jerry Gao
- root@linux~# echo "Firstname:$firstname Lastname:$lastname"
- Firstname: Jerry Lastname:Gao
- 07). read -r line # 允许输入包含反斜杠
- root@linux~# read line # 不带-r参数;则反斜杠不显示
- This is line 1. \ This is line 2.
- root@linux~# echo $line
- This is line 1. This is line 2.
- root@linux~# read -r line # 带-r参数;则反斜杠正常显示显示
- This is line 1. \ This is line 2.
- root@linux~# echo $line
- This is line 1. \ This is line 2.
- 08). read -t 5 # 指定读取等待时间为5秒
- root@linux~# read -t 5 -p 'Your Name:' name
- Your Name:Jerry
- root@linux~# echo $name # 如果5秒还未输入,则不能输入
- Jerry
- 09). read -a arrayname # 把单词清单读入arrayname的数组里
- root@linux~# read -a citys
- BJ SH CD GZ
- root@linux~# echo ${citys[*]}
- BJ SH CD GZ
- root@linux~# echo ${citys[0]}
- BJ
- 10). read -s -p "pwd:" pwd # 使用-s参数可以不显示用户的输入
- root@linux~# read -p "Enter Your Password:" -s PASSWORD
- Enter Your Password:
- root@linux~#
- root@linux~# echo $PASSWORD # 刚才输入的密码为:1234
- 1234
- 11). read -n 1 -p "Sure?(y/n):" # 使用-n,来确定参数个数
- root@linux~# read -n 1 -p "Are you sure?(y/n): " ANSWER
- Are you sure?(y/n): y
- root@linux~#
- root@linux~# echo -e "Your ANSWER is: $ANSWER"
- Your ANSWER is: y
- 12). read -d ":" var # 使用:作为输入分界符
- root@linux~# read -d ";" -p "Enter Your Name:" name
- Enter Your Name:Jerry Gao;
- root@linux~# echo -e "Your Name: $name"
- Your Name: Jerry Gao
read在脚本中的应用:
遍历方式一:
- #!/bin/bash
- count=0
- while read line
- do
- echo -e "$count:-->$line"
- count=$[ count + 1]
- done < /etc/passwd
遍历方式二:
- #!/bin/bash
- awk -F: '{print $1,$7}' /etc/passwd | while read user bash
- do
- echo -e "USER=$user; BASH=$bash"
- done
(转)Shell中read的用法详解的更多相关文章
- 转shell中的awk用法详解
awk语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作,完整的awk脚本通常用来格式化文本文件中的信息 调用awk: 第一种,命令行方式 ...
- (转)shell中test命令方法详解
test命令用法.功能:检查文件和比较值 shell中test命令方法详解 原文:https://www.cnblogs.com/guanyf/p/7553940.html 1)判断表达式 if te ...
- (转)linux 中特殊符号用法详解
linux 中特殊符号用法详解 原文:https://www.cnblogs.com/lidabo/p/4323979.html # 井号 (comments)#管理员 $普通用户 脚本中 #!/b ...
- C#中string.format用法详解
C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...
- c++中vector的用法详解
c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...
- php中setcookie函数用法详解(转)
php中setcookie函数用法详解: php手册中对setcookie函数讲解的不是很清楚,下面是我做的一些整理,欢迎提出意见. 语法: bool set ...
- JavaScript中return的用法详解
JavaScript中return的用法详解 最近,跟身边学前端的朋友了解,有很多人对函数中的this的用法和指向问题比较模糊,这里写一篇博客跟大家一起探讨一下this的用法和指向性问题. 1定义 t ...
- Mysql中limit的用法详解
Mysql中limit的用法详解 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,为我们提供了limit这样一个功能. SELECT * FROM table LIMIT [offset ...
- JavaScript中this的用法详解
JavaScript中this的用法详解 最近,跟身边学前端的朋友了解,有很多人对函数中的this的用法和指向问题比较模糊,这里写一篇博客跟大家一起探讨一下this的用法和指向性问题. 1定义 thi ...
随机推荐
- 编写高质量代码改善C#程序的157个建议——建议13: 为类型输出格式化字符串
建议13: 为类型输出格式化字符串 有两种方法可以为类型提供格式化的字符串输出.一种是意识到类型会产生格式化字符串输出,于是让类型继承接口IFormattable.这对类型来 说,是一种主动实现的方式 ...
- day4学python 字符编码转换+元组概念
字符编码转换+元组概念 字符编码转换 #coding:gbk //此处必声明 文件编码(看右下角编码格式) #用来得到python默认编码 import sys print(sys.getdefaul ...
- [Swift实际操作]九、完整实例-(5)创建BaseViewController作为控制器的基类
本文将给项目中的所有视图控制器,创建一份基类.该基类用来定义一些共用的属性和方法. 首先在用来放置视图控制器类的文件夹上点击鼠标右键,打开右键 菜单. 选择[New File]创建文件选项. 在弹出的 ...
- Tomcat8.5安装教程
如果第一次安装的用户请耐心阅读哈安装方法1.下载完成后开始安装,第一次安装的用户建议直接点击“next”不选择插件2.可以自行设置账户名以及密码3.非常重要的一步!!!!!!!!!设置jdk安装目录, ...
- Unity---简单单例模式的使用
单例模式特点 1.一般用在一个脚本访问另一个脚本中的数据. 2.对于使用单例模式的类,系统中只会存在唯一一个实例,减少了内存开销. Unity中继承于MonoBehaviour的单例模式 public ...
- MySQL事务及事务隔离级别 锁机制
什么是事务? 当多个用户访问同一份数据时,一个用户在更改数据的过程中可能有其他用户同时发起更改请求,为保证数据库记录的更新从一个一致性状态更改为另一个一致性状态,这样的操作过程就是事务.事务具有的AC ...
- layer mobile开发layer.full
Layer For Mobile 之 layer.full() 背景介绍:layer mobile是专门针对手机页面开发的一套框架,具体介绍请看官方文档 http://layer.layui.com/ ...
- 按钮重复点击问题 UIbutton
.h #import <UIKit/UIKit.h> #import <objc/runtime.h> @interface UIControl (XY) @property ...
- Qt 学习之路 2(38):存储容器
Qt 学习之路 2(38):存储容器 豆子 2013年1月14日 Qt 学习之路 2 38条评论 存储容器(containers)有时候也被称为集合(collections),是能够在内存中存储其它特 ...
- JavaWeb学习笔记(十四)—— 使用JDBC处理MySQL大数据
一.什么是大数据 所谓大数据,就是大的字节数据,或大的字符数据.大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据 ...