Kevin_306

06 SHELL脚本编程基础-Read-20210404 (六)

使用 read 命令来接受输入 

使用read来把输入值分配给一个或多个shell变量,read从标准输入中读取值,给每个单词分配一个变 量,所有剩余单词都被分配给后一个变量,如果变量名没有指定,默认标准输入的值赋值给系统内置 变量REPLY

格式:read [options] [name ...]

常见选项:

-p               指定要显示的提示 
-s               静默输入,一般用于密码 
-n   N           指定输入的字符长度N 
-d  '字符'        输入结束符 
-t   N           TIMEOUT为N秒

范例:

yesorno脚本,一开始是这样的,比较简单,只能输入完整的YES,或者No

优化一下脚本

用正则表达式来写脚本,answer是个变量名!

此处需要使用双花括号[[ ]],只有双花括号支持正则表达式

初步改了一下来执行看看效果

继续改,加入|^$,^开头,$结尾

注:[^]  匹配指定范围外的任意单个字符,示例:[^wang]

^ 行首锚定,用于模式的左侧

$ 行尾锚定,用于模式的右侧

 继续改,主要观变化,加入[ ],变成了|^[ ]$

继续改,[[ $answer =~ ^[Yy]$|^[Yy][Ee][Ss]$ ]]并验证OK

全部改完验证,也OK

[[ $answer =~ ^[Nn]$|^[Nn][Oo]$ ]]

 

 同时验证一下输错的结果,也OK

 完整的就是这样

 这个脚本还可以再优化一下,更精简了,更好看了

 验证修改精简后的脚本,成功:

 

posted on 2021-04-04 20:41  熊猫小虾  阅读(69)  评论(0编辑  收藏  举报

导航