shell下的read命令的作用是从标准流中读取输入,并把读取的内容放到某个变量中。
用法:read [-ers] [-a array] [-ddelim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name...]
此篇主要介绍参数read + -p的使用
使用read参数[-p]后,允许在[-p]后面跟一字符串,在字符串后面跟n个shell变量。n个shell变量用来接收从shell界面输入的字符串
[-p]用法:read –p “string” var1 var2…varn
当n为0时,使用默认变量REPLY接收shell界面内输入的字符串。例read_p.sh:
图1.read使用参数-p
代码解析:
[第4行]是read使用参数[-p]的一个实例,”$TIP”是跟在参数-p后面的字符串,name, sex是用来接收从shell界面输入的变量的值。
若从shell界面输入字符串的个数刚好为2时,name,sex的值与输入的字符串相对应。当输入的字符串数超过2时,第一个字符串的值赋给name,剩余的字符串赋给sex。若是输入的字符串数少于变量数,则多余的字符串值为空。传参数得结果:
现在shell界面输入不同参数看其输出结果:
<1>.
输入:shanmu f
输出:shanmu
f两个变量,两个参数,对应分配。
运行结果 图示:
图2.read_p.sh运行结果1
<2>
输入:shanmu f m
输出:shanmu
f m将多于的参数都分配给最后一个变量。
图示:
图3.read_p.sh运行结果2
<3>
输入:shanmu
输出:shanmu
(空行)
sex变量没有接收到参数,值为空。
图示:
图4.read_p.sh运行结果3
总结:read 和参数 -p搭配使用,允许在read命令行中直接指定一个提示(如图1的TIP变量的值),然后根据给定的提示在shell界面输入相应的参数,让给定的变量(如图1中的变量name,sex)接收。