[Linux] shell read命令 参数 -t -n -s记录

时间:2021-05-21 21:26:54

原帖: http://blog.csdn.net/misskissc/article/details/8154051


shell下的read命令的作用是从标准流中读取输入,并把读取的内容放到某个变量中。

用法:read [-ers] [-a array] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd] [name ...]

今天此篇记录read命令的 -t 、-n、 -s三大参数:

 

-t】参数

-t参数给用户的输入做限时规定。若超出-t参数后所规定的时间值后,脚本将终止用户的输入,可单独使用也可和其它参数配合连用。

read_t.sh

[Linux] shell read命令 参数 -t -n -s记录

图1.-t 设定交互界面时间参数

若在-t参数后3(以秒为单位)秒后完成输入(完成输入且键入回车),则相应的shell变量将会获得对应的值。否则shell变量的值为空。

 

-n】参数

参数-n规定read后面的变量所接收的字符个数。只要在shell界面输入到-n所规定的字符数之后,shell变量立即被赋值。若是没有得到所规定的字符数,shell界面给予等待。

例read_n.sh

[Linux] shell read命令 参数 -t -n -s记录

图2.-n规定shell变量所接收的shell界面输入字符数

 

[3]语句除了在20s后会自动运行到第5行外,若用户在shell界面输入10个字符后,name变量立马拥有shell界面输入的字符串值,并执行到第5行。

 

-s】参数

有时会需要脚本用户输入,但不希望输入的数据显示在监视器上。如用户密码等。

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

例read_s.sh

[Linux] shell read命令 参数 -t -n -s记录

图3.-s屏蔽read读参数时的字符回显

第5行是作换行处理。第六行是将name接收到的参数输出来瞧瞧。

如运行脚本后输入:sh

得到输出界面为:

[Linux] shell read命令 参数 -t -n -s记录

图4.read_s.sh运行结果

图四中划红线上面就是输入参数的位置,可见加入参数-s后,成功屏蔽字符回显。