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