(转)Shell中read的用法详解

Posted

tags:

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



 

read在脚本中的应用:

遍历方式一:

 

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

遍历方式二:

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







以上是关于(转)Shell中read的用法详解的主要内容,如果未能解决你的问题,请参考以下文章

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

BigDecimal用法详解(转)

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

(转)Xargs用法详解

转:memset用法详解

ps命令用法详解(转)