Shell中read的用法详解

原文:http://blog.csdn.net/jerry_1126/article/details/77406500

read的常用用法如下:

read -[pstnd] var1 var2 ...

-p 提示语句
-n 字符个数
-s 屏蔽回显
-t 等待时间
-d 输入分界

  1. 01). read                           # 从标准输入读取一行并赋值给特定变量REPLY
  2. root@linux~# read
  3. Hello,World!
  4. root@linux~# echo $REPLY
  5. Hello,World!
  6. 02). read name                      # 从标准输入读取输入并赋值给变量name
  7. root@linux~# read name
  8. Jerry
  9. root@linux~# echo $name
  10. Jerry
  11. 03). read var1 var2                 # 第一个变量放置于var1,第二个变量放到var2
  12. root@linux~# read firstname lastname
  13. Jerry Gao
  14. root@linux~# echo "firstname:$firstname lastname:$lastname"
  15. firstname:Jerry lastname:Gao
  16. 04). read -p "text"                 # 打印提示'text',等待输入,并将输入存储在REPLY中
  17. root@linux~# read -p 'Please Enter your name:-->'
  18. Please Enter your name:-->Jerry
  19. root@linux~# echo $REPLY
  20. Jerry
  21. 05). read -p "text" var             # 打印提示'text',等待输入,并将输入存储在VAR中
  22. root@linux~# read -p 'Please Enter your name:-->' name
  23. Please Enter your name:-->Jerry
  24. root@linux~# echo $name
  25. Jerry
  26. 06). read -p "text" var1  var2      # 打印提示'text',等待输入,将变量分别存储在var1,var2...
  27. root@linux~# read -p 'What your name? ' firstname lastname
  28. What your name? Jerry Gao
  29. root@linux~# echo "Firstname:$firstname Lastname:$lastname"
  30. Firstname: Jerry Lastname:Gao
  31. 07). read -r line                   # 允许输入包含反斜杠
  32. root@linux~# read line              # 不带-r参数;则反斜杠不显示
  33. This is line 1. \ This is line 2.
  34. root@linux~# echo $line
  35. This is line 1. This is line 2.
  36. root@linux~# read -r line           # 带-r参数;则反斜杠正常显示显示
  37. This is line 1. \ This is line 2.
  38. root@linux~# echo $line
  39. This is line 1. \ This is line 2.
  40. 08). read -t 5                      # 指定读取等待时间为5秒
  41. root@linux~# read -t 5 -p 'Your Name:' name
  42. Your Name:Jerry
  43. root@linux~# echo $name             # 如果5秒还未输入,则不能输入
  44. Jerry
  45. 09). read -a arrayname              # 把单词清单读入arrayname的数组里
  46. root@linux~# read -a citys
  47. BJ SH CD GZ
  48. root@linux~# echo ${citys[*]}
  49. BJ SH CD GZ
  50. root@linux~# echo ${citys[0]}
  51. BJ
  52. 10). read -s -p "pwd:" pwd      # 使用-s参数可以不显示用户的输入
  53. root@linux~# read -p "Enter Your Password:" -s PASSWORD
  54. Enter Your Password:
  55. root@linux~#
  56. root@linux~# echo $PASSWORD         # 刚才输入的密码为:1234
  57. 1234
  58. 11). read -n 1 -p "Sure?(y/n):"     # 使用-n,来确定参数个数
  59. root@linux~# read -n 1 -p "Are you sure?(y/n): " ANSWER
  60. Are you sure?(y/n): y
  61. root@linux~#
  62. root@linux~# echo -e "Your ANSWER is: $ANSWER"
  63. Your ANSWER is: y
  64. 12). read -d ":" var                # 使用:作为输入分界符
  65. root@linux~# read -d ";" -p "Enter Your Name:" name
  66. Enter Your Name:Jerry Gao;
  67. root@linux~# echo -e "Your Name: $name"
  68. Your Name: Jerry Gao

read在脚本中的应用:

遍历方式一:

  1. #!/bin/bash
  2. count=0
  3. while read line
  4. do
  5. echo -e "$count:-->$line"
  6. count=$[ count + 1]
  7. done < /etc/passwd

遍历方式二:

    1. #!/bin/bash
    2. awk -F: '{print $1,$7}' /etc/passwd | while read user bash
    3. do
    4. echo -e "USER=$user; BASH=$bash"
    5. done

(转)Shell中read的用法详解的更多相关文章

  1. 转shell中的awk用法详解

        awk语言的最基本功能是在文件或字符串中基于指定规则浏览和抽取信息,awk抽取信息后,才能进行其他文本操作,完整的awk脚本通常用来格式化文本文件中的信息 调用awk:   第一种,命令行方式 ...

  2. (转)shell中test命令方法详解

    test命令用法.功能:检查文件和比较值 shell中test命令方法详解 原文:https://www.cnblogs.com/guanyf/p/7553940.html 1)判断表达式 if te ...

  3. (转)linux 中特殊符号用法详解

    linux 中特殊符号用法详解 原文:https://www.cnblogs.com/lidabo/p/4323979.html # 井号 (comments)#管理员  $普通用户 脚本中 #!/b ...

  4. C#中string.format用法详解

    C#中string.format用法详解 本文实例总结了C#中string.format用法.分享给大家供大家参考.具体分析如下: String.Format 方法的几种定义: String.Form ...

  5. c++中vector的用法详解

    c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间 ...

  6. php中setcookie函数用法详解(转)

    php中setcookie函数用法详解:        php手册中对setcookie函数讲解的不是很清楚,下面是我做的一些整理,欢迎提出意见.        语法:        bool set ...

  7. JavaScript中return的用法详解

    JavaScript中return的用法详解 最近,跟身边学前端的朋友了解,有很多人对函数中的this的用法和指向问题比较模糊,这里写一篇博客跟大家一起探讨一下this的用法和指向性问题. 1定义 t ...

  8. Mysql中limit的用法详解

    Mysql中limit的用法详解 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,为我们提供了limit这样一个功能. SELECT * FROM table LIMIT [offset ...

  9. JavaScript中this的用法详解

    JavaScript中this的用法详解 最近,跟身边学前端的朋友了解,有很多人对函数中的this的用法和指向问题比较模糊,这里写一篇博客跟大家一起探讨一下this的用法和指向性问题. 1定义 thi ...

随机推荐

  1. 【Head First Java 读书笔记】(一)基本概念

    Java的工作方式 你要做的事情就是会编写源代码 Java的程序结构 类存于源文件里面 方法存在类中 语句存于方法中 剖析类 当Java虚拟机启动执行时,它会寻找你在命令列中所指定的类,然后它会锁定像 ...

  2. DELPHI XE5 UP2 运行IOS 遇到 Wrapper init failed: (null)问题的解决办法

    一.问题表现: 在MAC OSX(10.9.2)上安装了比较新的XCODE5.1 和COMMAND LINE TOOLS 在DELPHI XE5 UP2上放了一个按钮,输出到MAC OSX上,出现: ...

  3. Extjs Hello extjs

    <html > <head runat="server"> <title></title> <link rel="s ...

  4. HackNine 避免在EditText中验证日期

    1.概要:    为什么不直接为EditTText设置一个点击监听器,而非要使用Button呢?     答案是:使用Button更安全,因为用户无法修改Button的文本内容.如果使用EditTex ...

  5. 转:[python] pip 升级所有的包

    pip 当前内建命令并不支持升级所有已安装的Python模块. 列出当前安装的包: pip list 列出可升级的包: pip list --outdate 升级一个包: pip install -- ...

  6. Transaction And Lock--快照事务隔离级别

    --================================================--准备数据GOCREATE DATABASE DB5GOUSE DB5GOCREATE TABLE ...

  7. 【leetcode 94. 二叉树的中序遍历】解题报告

    前往二叉树的:前序,中序,后序 遍历算法 方法一:递归 vector<int> res; vector<int> inorderTraversal(TreeNode* root ...

  8. B - N皇后问题

    原文链接 一天课下,张老板研究起了国际象棋,渴望完美的他更改了棋盘的大小,在N*N的方格棋盘放置了N个皇后,希望它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的 ...

  9. 洛谷P2770 航空路线问题(费用流)

    传送门 完了这题好厉害……字符串什么的好麻烦…… 要求从$1$到$n$的路径,不重复,经过边数最多 每一个点拆成两个,$A_i,B_i$,然后$A_i$到$B_i$连容量为$1$,费用为$1$的边,保 ...

  10. [Swift实际操作]九、完整实例-(3)创建和安装开发证书、发布证书及开发证书配置文件、发布证书配置文件

    本文将为你演示,如何创建开发证书和发布证书,以及其他辅助内容.首先打开浏览器,进入[苹果开发者网站]输入[Apple ID]和[密码],点击登录按钮,进入开发者管理后台. 点击左侧的[Membersh ...