转至:http://mzywqwq.blog.163.com/blog/static/9587012201301423726957/

read是Linux的一个内建命令,主要完成对参数的赋值,类似C语言中的

scanf。其不仅可以赋值变量,还可以赋值数组;其输入不仅是屏幕,还可以是文件描述符。

一、read 命令用法和参数

用法:

read [-ers] [-a array] [-d delim] [-i text] [-n nchars]

[-N nchars] [-p prompt] [-t timeout] [-u fd] [name

...]

read [ -p ][ -r ][ -s ][ -u[ n ] ] [ VariableName?Prompt

][ VariableName ... ]

说明:

read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量,用

IFS(内部字段分隔符)变量中的字符作为分隔符。VariableName 参数指定 shell 变量的名称,shell

变量获取输入行一个字段的值。

由VariableName 参数指定的第一个 shell 变量指定给每一个字段的值,由VariableName 参数指定的第二个

shell 变量指定给第二个字段的值,以此类推,直到最后一个字段。如果标准输入行的字段比相应的由 VariableName 参数指定的

shell 变量的个数多,把全部余下的字段的值赋给指定的最后的 shell 变量。如果比 shell 变量的个数少,则剩余的

shell 变量被设置为空字符串。

参数:

-a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。

-d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志,会举例说 明。

-p 后面跟提示信息,即在输入前打印提示信息。

-e 在输入的时候可以时候命令补全功能。

-n 后跟一个数字,定义输入文本的长度,很实用。

-r 屏蔽,如果没有该选项,则作为一个转义字符,有的话 就是个正常的字符了。

-s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。

-t 后面跟秒数,定义输入字符的等待时间。

-u 后面跟fd,从文件描述符中读入,该文件描述符可以是exec新开启的。

二、示例

1、-a 举例:

[root@Centos6 ~]# read -a tao qq ww ee rr [root@Centos6 ~]# echo ${tao[1]} Ww hh (输入一个e) [root@Centos6 ~]#echo ${tao[3]} Hh

2、-b 举例:

[root@Centos6 ~]# read -d eof -a tao ww dd gg

3、-n 举例:

[root@Centos6 ~]# read -n3 -p “you can input 3 word:” you can input 3 word:xxx (输入3个字符后自动退出!)

4、-e 举例:

[root@Centos6 ~]#read -e file (tab键补全) exp1 file ngis_post.sh text exp5 linux-2.6.27.54/ test xen-3.0.1-install/

5、-s 举例:

[root@Centos6 ~]#read -p password: -s passwd password: (这时候输入就不再显示在屏幕上了!)

6、-u 举例:

[root@Centos6 ~]# exec 3

注意看下读入的次序:

[root@Centos6 ~]# cat file hello world! i am good [root@Centos6 ~]# exec 3

这个选项很有用的,特别是自循环读入的时候。

7、下列脚本打印一个文件,这个文件中每行的第一个字段被移动到本行的末尾。

while read -r xx yy do print printf "%s %s/n" $yy $xx done < InputFile

8、为创建一个共同进程,用 print -p 写到共同进程,并用 read -p 从共同进程中读取输入,请输入:

(read; print "hello $REPLY") print -p "world" read-p line

变量 line 的值应该是 "hello world."

9、读取一行,把它分成字段,并使用 "Please enter: " 作为提示符,

请输入:

read word1?"Please enter: " word2

系统显示:

Please enter: You enter: hello world

变量 word1 的值应该是 "hello",变量 word2 应该是 "world."

10、为把输入行的副本保存为历史文件中的一个命令,请输入:

read -s line < input_file

如果输入文件包含 "echo hello world," ,那么在历史记录文件中将会把 "echo hello

world" 保存为一个命令。

c语言read怎么一行一行读,使用read从标准输入中读取一行相关推荐

  1. C++ getline():从文件中读取一行字符串

    C++ getline():从文件中读取一行字符串 前一节中,详细介绍了如何使用 getline() 方法从 cin 输入流缓冲区中读取一行字符串.在此基础上,getline() 方法还适用于读取指定 ...

  2. golang从stdin中读取一行

    2019独角兽企业重金招聘Python工程师标准>>> 本文转自life的leanote博客:  http://leanote.com/blog/view/531706971a91 ...

  3. java文件替换一行数据_用Golang替换文件中的一行

    我是Golang的新手,从一些例子开始 . 目前,我要做的是逐行读取文件,并在满足特定条件时将其替换为另一个字符串 . 该文件用于测试目的包含四行: one two three four 处理该文件的 ...

  4. 从socket中读取一行语句

    对于很多基于telnet协议的服务,如FTP, POP3等,它们的操作是通过输入一行字符完成的,这就需要socket每次读取一行,这可以通过文件流的方式完成(详见上一条). 程序如下:(设sockfd ...

  5. matlab怎么读txt文件字符串,Matlab中读取txt文件的几种方法

    一.纯数据文件(没有字母和中文,纯数字) a=importdata('*.txt');%%%*为所存的文件名 a1=a.data;%%%文件中的数字 a2=a.textdata;%%%文件中的非数字 ...

  6. python 压缩文件 调用7z_Python:如何从Python压缩的7z文件中读取一行?

    (详细介绍收益率部分)注意,我不知道这个库,也不知道你用什么函数来获取未压缩的数据块.但我的意思是:def 7zreadline(filename): with open(filename, 'rb' ...

  7. python读取txt文件每一行存为列表,从txt文件中读取一定数量的行,并以python方式转换为list...

    这里有一种更面向对象的方法,使用简单编码的FSM(有限状态机)来控制读取完整数据记录的过程.它比当前发布的其他答案更加冗长,但是它是一种相当灵活和可扩展的方法来处理这些任务,并通过错误检查来完成.在c ...

  8. c++语言读txt数据,关于C++中读取txt文件中字符串 - 程序语言 - 小木虫 - 学术 科研 互动社区...

    #include<iostream> #include<fstream> #include<string> #include<vector> using ...

  9. android 读json文件,在Android中读取json文件

    小编典典 将该文件放入资产中 . 对于在Android Studio项目中创建的项目,您需要在主文件夹下创建资产文件夹. 将该文件读取为: public String loadJSONFromAsse ...

最新文章

  1. .NET中的密码学--对称加密
  2. 怎么读取h5文件内容_【Python编程特训连载72】读取two.txt文件,模拟输出“两会”内容 答案公布...
  3. 【Android 属性动画】属性动画 Property Animation 简介 ( 属性动画简介 | 属性动画特性 )
  4. kettle 使用java版本_Kettle最新版本8.X详解
  5. 2021 考研 基本常识
  6. c语言标准整形,C语言整形数值范围问题
  7. 哪个html在大部分浏览器下是不隐藏的,前端浏览器兼容性问题总结
  8. php没有上级分类的联动,ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单...
  9. flask对mysql数据库增删改查_flask后台框架1.4(mysql配置+数据库增删改查)-Go语言中文社区...
  10. 《软件工程》课程:期末复习提纲(超详细课本内容)
  11. Win32/Conficker 蠕虫的病毒警报
  12. mysql 纯真ip 导出dat_3步搞定纯真IP数据导入到MySQL详解
  13. 激光三角测量物体高度
  14. 学生成绩管理系统-C语言(附源码)
  15. NOIP2016 天天爱跑步
  16. 子类构造函数中super()方法的理解
  17. 可恶啊,被他用责任链给装到了
  18. 企业如何选择靠谱的加密软件?
  19. 昆仑通态MCGS与三菱FX3U 485BD方式通讯案例
  20. 推荐一个时间轴上的历史网站

热门文章

  1. java list键值对解析
  2. 电脑解锁后黑屏有鼠标_电脑黑屏后屏幕只有鼠标怎么办呢?
  3. Android多图加载成动画
  4. Tradeoff 是一种针对目标选择有效的路径的思维方式
  5. 如何将本地文件自动备份到百度网盘?
  6. nexus-基本使用
  7. javascript 闭包_了解JavaScript闭包:实用方法
  8. 研究生师兄师姐毕业经验分享总结
  9. java.exe 关闭后自动重启
  10. Java大象进冰箱线程_把大象装进冰箱:HTTP传输大文件的方法