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语句只给一个变量赋值的办法:

浙公网安备 33010602011771号