[Linux] shell read 命令参数 -p用法 [大三TJB_708]

时间:2021-06-25 21:28:11

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:

[Linux] shell read 命令参数 -p用法 [大三TJB_708]

图1.read使用参数-p

代码解析:

[第4行]是read使用参数[-p]的一个实例,”$TIP”是跟在参数-p后面的字符串,name, sex是用来接收从shell界面输入的变量的值。

若从shell界面输入字符串的个数刚好为2时,name,sex的值与输入的字符串相对应。当输入的字符串数超过2时,第一个字符串的值赋给name,剩余的字符串赋给sex。若是输入的字符串数少于变量数,则多余的字符串值为空。


传参数得结果:

现在shell界面输入不同参数看其输出结果:

<1>.

输入:shanmu f

输出:shanmu

             f

两个变量,两个参数,对应分配。

运行结果 图示:

[Linux] shell read 命令参数 -p用法 [大三TJB_708]

图2.read_p.sh运行结果1

<2>

输入:shanmu f m

输出:shanmu

             f m

将多于的参数都分配给最后一个变量。

图示:

[Linux] shell read 命令参数 -p用法 [大三TJB_708]

图3.read_p.sh运行结果2

<3>

输入:shanmu

输出:shanmu

(空行)

sex变量没有接收到参数,值为空。

图示:

[Linux] shell read 命令参数 -p用法 [大三TJB_708]

图4.read_p.sh运行结果3

总结:read 和参数 -p搭配使用,允许在read命令行中直接指定一个提示(如图1的TIP变量的值),然后根据给定的提示在shell界面输入相应的参数,让给定的变量(如图1中的变量name,sex)接收。