(转)Shell中read的用法详解

Shell中read的用法详解

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

read的常用用法如下:

read -[pstnd] var1 var2 ...

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

[plain] view plain copy

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

read在脚本中的应用:

遍历方式一:

[python] view plain copy

  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

遍历方式二:

[python] view plain copy

    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
时间: 2024-08-02 06:56:24

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

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

linux 中特殊符号用法详解 原文:https://www.cnblogs.com/lidabo/p/4323979.html # 井号 (comments)#管理员  $普通用户 脚本中 #!/bin/bash   #!/bin/sh井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行. # This line is comments.echo "a = $a" # a = 0由于这个特性,当临时不想执行某行指令时,只需在该行开头加上 # 就

PHP中的ob_start用法详解

用PHP的ob_start();控制您的浏览器cache Output Control 函数可以让你自由控制脚本中数据的输出.它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况.输出控制函数不对使用 header() 或 setcookie(), 发送的文件头信息产生影响,只对那些类似于 echo() 和 PHP 代码的数据块有作用.我们先举一个简单的例子,让大家对Output Control有一个大致的印象:Example 1. 程序代码 程序代码<?phpob_start(

c++中vector的用法详解

c++中vector的用法详解 vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: 1.文件包含: 首先在程序开头处加上#include<vector>以包含所需要的类文件vector 还有一定要加上using namespace std; 2.变量声明: 2.1 例:声明一个int向量以替代一维的数组:vector <int> a;(等于声明了一个

hibenate中genarator的用法详解

ARM IDE 使用 ADS(ARM Developer Suite),是在1993年由Metrowerks公司开发是ARM处理器下最主要的开发工具. 新建工程:exp-2 新建文件exp-2.s到工程exp-2中: 创建好后,编辑源代码. 调试设置:AXD->options->configure Target..,选armul: ARMlinker中设置 RO Base与RW Base与Image Entry Point: 开始调试.add r1,r1,r2 // 将r1+r2的结果存储到r

Python中self的用法详解,或者总是提示:TypeError: add() missing 1 required positional argument: &#39;self&#39;的问题解决

https://blog.csdn.net/songlh1234/article/details/83587086 下面总结一下self的用法详解,大家可以访问,可以针对平时踩过的坑更深入的了解下. https://blog.csdn.net/CLHugh/article/details/75000104, Python中self的用法详解,或者总是提示:TypeError: add() missing 1 required positional argument: 'self'的问题解决 原文

mysql中event的用法详解

一.基本概念mysql5.1版本开始引进event概念.event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发.通过单独或调用存储过程使用,在某一特定的时间点,触发相关的SQL语句或存储过程. 二.适用范围对于每隔一段时间就有固定需求的操作,如创建表,删除数据等操作,可以使用event来处理. 例如:使用event在每月的1日凌晨1点自动创建下个月需要使用的三张表. 三.使用权限单独使用event调用SQL语句时,查看和创建

STL中的map用法详解

STL中map用法详解 说明:如果你具备一定的C++ template知识,即使你没有接触过STL,这个文章你也应该可能较轻易的看懂.本人水平有限,不当之处,望大家辅正. 一.map概述 map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道.这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),

python在selenium中做自动化测试用法详解

一.环境搭建参考:https://blog.csdn.net/efly2333/article/details/80346426 二.selenium用法详解(https://www.cnblogs.com/themost/p/6900852.html) 1 selenium用法详解 2 selenium主要是用来做自动化测试,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题. 3 模拟浏览器进行网页加载,当requests,urllib无法正常获取网页内容的时候 4 5 一.声明

linux 中特殊符号用法详解

# 井号 (comments)#管理员  $普通用户 脚本中 #!/bin/bash   #!/bin/sh井号也常出现在一行的开头,或者位于完整指令之后,这类情况表示符号后面的是注解文字,不会被执行. # This line is comments.echo "a = $a" # a = 0由于这个特性,当临时不想执行某行指令时,只需在该行开头加上 # 就行了.这常用在撰写过程中.#echo "a = $a" # a = 0如果被用在指令中,或者引号双引号括住的话