One Linux Command Per Day (10) read

可以使用r e a d语句从键盘或文件的某一行文本中读入信息,并将其赋给一个变量。如果只指定了一个变量,那么 r e a d 将会把所有的输入赋给该变量,直至遇到第一个文件结束符或回车。

它的一般形式为:
read varible1 varible2 ...

在下面的例子中,只指定了一个变量,它将被赋予直至回车之前的所有内容:

deyuy/bin/my_shell >> read name
Alex Yin
deyuy/bin/my_shell >> echo $name
Alex Yin

 

在下面的例子中,我们给出了两个变量,它们分别被赋予名字和姓氏。 s h e l l 将用空格作为变量之间的分隔符:

deyuy/bin/my_shell >> read name surname
Alex Yin
deyuy/bin/my_shell >> echo $name
Alex
deyuy/bin/my_shell >> echo $surname
Yin

 

如果输入文本域过长, Shell 将所有的超长部分赋予最后一个变量。下面的例子,假定要读取变量名字和姓,但这次输入三个名字;结果如下;

deyuy/bin/my_shell >> read name surname
Alex yue xia xiao xi
deyuy/bin/my_shell >> echo $name
Alex
deyuy/bin/my_shell >> echo $surname
yue xia xiao xi

 

在上面的例子中,如果我们输入字符串

Alex yue xia xiao xi

那么第一个单词将被赋给第一个变量,而由于变量数少于单词数,字符串后面的部分将被全部赋给第二个变量。

在编写s h e l l脚本的时候,如果担心用户会对此感到迷惑,可以采用每一个 r e a d语句只给一个变量赋值的办法:

posted @ 2015-02-09 14:33  mooncreek  阅读(78)  评论(0)    收藏  举报