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
图1.-t 设定交互界面时间参数
若在-t参数后3(以秒为单位)秒后完成输入(完成输入且键入回车),则相应的shell变量将会获得对应的值。否则shell变量的值为空。
【-n】参数
参数-n规定read后面的变量所接收的字符个数。只要在shell界面输入到-n所规定的字符数之后,shell变量立即被赋值。若是没有得到所规定的字符数,shell界面给予等待。
例read_n.sh
图2.-n规定shell变量所接收的shell界面输入字符数
[3]语句除了在20s后会自动运行到第5行外,若用户在shell界面输入10个字符后,name变量立马拥有shell界面输入的字符串值,并执行到第5行。
【-s】参数
有时会需要脚本用户输入,但不希望输入的数据显示在监视器上。如用户密码等。
-s选项能够使read命令中输入的数据不显示在监视器上(实际上,数据是显示的,只是read命令将文本颜色设置成与背景相同的颜色)。
例read_s.sh
图3.-s屏蔽read读参数时的字符回显
第5行是作换行处理。第六行是将name接收到的参数输出来瞧瞧。
如运行脚本后输入:sh
得到输出界面为:
图4.read_s.sh运行结果
图四中划红线上面就是输入参数的位置,可见加入参数-s后,成功屏蔽字符回显。
总结:一步一步踏实地走,不亦乐乎哉!