您的位置:首页 > 运维架构 > Shell

Bash_case控制结构与read命令的使用

2014-06-30 17:24 337 查看
Case控制结构
Case 变量引用(${var}) in
Value1|value2)
Cmd1
Cmd2
;;
Value3|value4)
Cmd3
Cmd4
;;
Esac
注:整个结构中最后一条命令可以不用加双分号。
注:case中的value不支持正则,支持globbing(通配)以及|(或者)这样的写法;还可以使用字符集例如[:punct:]
例:[Yy][Ee][Ss]|[Yy]) cmd;;
[Nn]|[Nn][Oo]) cmd;;
*) cmd;

Bash如何与用户交互:
read命令(读取用户/文件输入的值,将其复制给指定的变量为值)
格式:read [选项] 变量名(如果不指定变量名,会将用户输入的值赋值给变量REPLY)
注:如果用户指定一个变量名,会将所有用户输入的数据赋值给这个变量;;如果用户指定多个变量名,会以默认(或者指定的)输入分隔符IFS分割用户的输入依次(一个值对应一个变量名)赋值给用户指定的变量;如果分割的值多余用户指定的变量数,会将多余的值一并赋值给用户指定的最后一个变量;如果分割的值少于用户指定的变量,那么用户指定的最后几个变量为空值。

选项及含义
-p:打印提示字符
-t:超时时间,达到指定时间,以一个非0值的退出状态退出read命令,不会读取用户已经输入的变量值!!!
-s:使用户输入的字符不显示在屏幕上;等于stty–echo命令,但不需要stty echo恢复。
-n#:对输入的字符计数,当输入的字符数达到预设的字符数#时,他会自动退出并将输入的数据赋值给变量。
*从文件中读取变量:(1)cat file|while read line 或(2)while read line 。。。done<file
(3)或者将while read line放在脚本中,并用命令调用脚本:./1.sh <file
注:for循坏也可以这么做,另外循环的输出可以在done后面加管道或者>或者>>来处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息