读取文件和输入——read 脚本命令

Linux之read命令使用 

read命令:

read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量

1)read后面的变量var可以只有一个,也可以有多个,这时如果输入多个数据,则第一个数据给第一个变量,第二个数据给第二个变量,如果输入数据个数过多,则最后所有的值都给最后一个变量

-p  read –p “提示语句”,则屏幕就会输出提示语句,如下图

当变量个数和输入个数一样时:

注意空格,要不会出错

当变量个数和输入个数不一样时,即输入个数比变脸个数多,则多的都赋给最后一个变量:

2)命令计数

-n

read –n 个数

设置read命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量

看一下cc.sh脚本的内容:

read –n 1的意思是只接受一个字符

执行

这里输入y后不用回车,自己就执行

3)等待时间

-t 时间

read –t 时间

使用read命令存在着潜在危险。脚本很可能会停下来一直等待用户的输入。如果无论是否输入数据脚本都必须继续执行,那么可以使用-t选项指定一个计时器。-t选项指定read命令等待输入的秒数。当计时满时,read命令返回一个非零退出状态;

看一下cc.sh脚本的内容:

执行cc.sh然后等待超过5s,发现自动退出了

4)关闭回显

-s

read –s

-s选项能够使read命令中输入的数据不显示在监视器上(实际上,数据是显示的,只是read命令将文本颜色设置成与背景相同的颜色),比如密码

看一下cc.sh的脚本内容

执行,看到输入密码的时候屏幕不显示

6)从文本读取内容并且赋给变量

6)读取输入
#!/bin/bash
echo -e "Please enter your test :"
read TESTREAD last
echo $TESTREAD
echo $last
结果显示输入内容。
Please enter your test
ni hao mingtian
ni
hao mingtian
7 综合应用

[root@NTP-SERVER shell]# ./4read.sh
are your happy?
happy
happy is the right
where do you work?beijing
lguess beijing keeps you busy!
enter your job title?worker
I thought you might be an worker
who are your best friends?li ming bo
Say hi to ming
[root@NTP-SERVER shell]# cat 4read.sh
#!/bin/bash
echo -e "are your happy?"
read answer
echo "$answer is the right"

echo -n "where do you work?"
read
echo lguess $REPLY keeps you busy!

read -p "enter your job title?"
echo "I thought you might be an $REPLY"

echo -n "who are your best friends?"
read -a friends
echo "Say hi to ${friends[1]}"

可以发现echo -e会有回车,-n着没有

read是按照空格进行分割的

posted @ 2015-06-01 17:49  周人假的  阅读(5673)  评论(0编辑  收藏  举报