1. 简单读取
read命令接收标准输入(键盘)的输入或其他文件描述符的输入,得到输入后,read命令将数据放入一个标准变量中。下面是 read命令的最简单形式:
01 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ vi read -simple.sh |
05 |
echo "enter
your website: " |
08 |
echo "your
website is $website" |
13 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ sh read -simple.sh |
16 |
your
website is www.wirelessqa.com |
19 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ sh -x read -simple.sh |
20 |
+ echo 'enter
your website: ' |
24 |
+ echo 'your
website is www.wirelessqa.com' |
25 |
your
website is www.wirelessqa.com |
2.直接跟上提示read -p
01 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ vi read -p.sh |
07 |
read -p "enter
your website: " website |
08 |
echo "your
website is $website" |
13 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ sh read -p.sh |
14 |
enter
your website: www.wirelessqa.com |
15 |
your
website is www.wirelessqa.com |
19 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ vi read -p- more .sh |
24 |
read -p "enter
your name and website: " name
website |
25 |
echo "your
name is $name,your websit is $website" |
2 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ sh -x read -p- more .sh |
3 |
+ read -p 'enter
your name and website: ' name
website |
4 |
enter
your name and website: bixiaopeng www.wirelessqa.com |
5 |
+ echo 'your
name is bixiaopeng,your websit is www.wirelessqa.com' |
6 |
your
name is bixiaopeng,your websit is www.wirelessqa.com |
3.计时输入read -t
-t选项指定read命令等待输入的秒数。当计时满时,read命令返回一个非零退出状态;
使用read命令存在着潜在危险。脚本很可能会停下来一直等待用户的输入。如果无论是否输入数据脚本都必须继续执行,那么可以使用-t选项指定一个计时器。
01 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ vi read -t.sh |
04 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ cat read -t.sh |
07 |
if read -t
10 -p "请在10秒内输入毕小朋博客的地址:
" website |
09 |
if [
$website = "www.wirelessqa.com" ] |
11 |
echo "你输入的地址是对的:$website" |
13 |
echo "你输入的网址是错的:$website" |
16 |
echo "对不起,你已超时,请在10秒内输入!" |
21 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ sh read -t.sh |
22 |
请在10秒内输入毕小朋博客的地址:
对不起,你已超时,请在10秒内输入! |
25 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ sh read -t.sh |
26 |
请在10秒内输入毕小朋博客的地址:
weibo.com /wirelessqa |
27 |
你输入的网址是错的:weibo.com /wirelessqa |
30 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ sh read -t.sh |
31 |
请在10秒内输入毕小朋博客的地址:
www.wirelessqa.com |
32 |
你输入的地址是对的:www.wirelessqa.com |
4.计数输入read -n数量
当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量
01 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ vi read -n.sh |
03 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ cat read -n.sh |
07 |
read -n1
-p "你喜欢老毕的博客吗[y/n]?
" answer |
18 |
read -n2
-p "请随便输入两个字符:
" any |
19 |
echo "
您输入的两个字符是:$any" |
23 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ sh read -n.sh |
24 |
你喜欢老毕的博客吗[y /n ]?
n oh,我会继续努力的! |
25 |
请随便输入两个字符:
ai 您输入的两个字符是:ai |
5.隐藏输入read -s
01 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ vi read -s.sh |
02 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ cat read -s.sh |
05 |
read -s
-p "请输入你的密码:
" pass |
11 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ sh read -s.sh |
6.读取文件
每次调用read命令都会读取文件中的”一行”文本。当文件没有可读的行时,read命令将以非零状态退出。
通过什么样的方法将文件中的数据传给read呢?使用cat命令并通过管道将结果直接传送给包含read命令的while命令
01 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ vi read - file .sh |
03 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ cat read - file .sh |
07 |
cat read -s.sh
| while read line |
16 |
bixiaopeng@bixiaopengtekiMacBook-Pro
linuxTest$ sh read - file .sh |
19 |
3: read -s
-p "请输入你的密码:
" pass |
21 |
5: echo "你的密码是:
$pass" |