- 浏览: 162400 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
abc08010051:
简单明了,非常不错
java.lang.Thread.State类详解 -
tenderlitch:
jdk api文档里面的描述...
set闲聊 -
xmind:
图不错,收藏之。
图中Thread.wait()改用Objec ...
java.lang.Thread.State类详解 -
lahvey:
因为你的$VALUE值是“sed.txt”,并不是这个文件的内 ...
条件控制(test,expr……) -
tomotoboy:
thanks
tr用法
case语句
case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:
case工作方式如上所示。取值后面必须为单词 in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至;;
取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号*捕获该值,再接受其他输入。模式部分可能包括元字符,与在命令行文件扩展名例子中使用过的匹配模式类型相同,即:
来看一个简单的case语句:
对匹配模式使用|
提示键入y或n
case的一个有效用法是提示用户响应以决定是否继续进程。这里提示输入y以继续处理n退出。如果用户输入Y、y或yes,处理继续执行case语句后面部分。如果用户输入N、n或no或其他响应,用户退出脚本。
case与命令参数传入
捕获输入并执行空命令
不一定要在匹配模式后加入命令,如果你原本不想做什么,只是在进一步处理前过滤出意外响应,这样做是一种好办法。如果要运行对应于一个会计部门的帐目报表,必须首先在决定运行报表的类型前确认用户输入一个有效的部门号,匹配所有可能值,其他值无效。用case可以很容易实现上述功能。下面的脚本中如果用户输入部门号不是234、453、655或454,用户退出并返回可用信息。一旦响应了用户的有效部门号,脚本应用同样的技术取得报表类型,在case语句末尾显示有效的部门号和报表类型。脚本如下:
case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:
case 值 in 模式1 ) 命令1 . . . ;; 模式2 ) 命令2 . . . ;; esac
case工作方式如上所示。取值后面必须为单词 in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至;;
取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号*捕获该值,再接受其他输入。模式部分可能包括元字符,与在命令行文件扩展名例子中使用过的匹配模式类型相同,即:
* | 任意字符。 |
? | 任意单字符。 |
[..] | 类或范围中任意字符。 |
来看一个简单的case语句:
/home/l/g/tomotoboy >cat caseselect #!/bin/sh #caseselect echo - n "Enter a number from 1 to 5 :" read ANS case $ANS in 1) echo "you select 1" ;; 2) echo "you select 2" ;; 3) echo "you select 3" ;; 4) echo "you select 4" ;; 5) echo "you select 5" ;; *) echo "`basename $0`: This is not between 1 and 5" >&2 ;; esac /home/l/g/tomotoboy >caseselect - n Enter a number from 1 to 5 : 4 you select 4 /home/l/g/tomotoboy >caseselect - n Enter a number from 1 to 5 : 7 caseselect: This is not between 1 and 5
对匹配模式使用|
/home/l/g/tomotoboy >cat caseterm #!/bin/sh #caseterm echo "choices are.. vt100, vt102, vt220" echo -n "enter your terminal type :" read TERMINAL case $TERMINAL in vt100|vt102) TERM=vt100 ;; vt220) TERM=vt220 ;; *) echo "`basename $0`: Unknown reponse" >&2 echo "setting it to vt100 anyway,so there" TERM=vt100 ;; esac export TERM echo "Your terminal is set to $TERM' "caseterm" 17 lines, 348 characters /home/l/g/tomotoboy >caseterm choices are.. vt100, vt102, vt220 -n enter your terminal type : vt100 Your terminal is set to vt100'
提示键入y或n
case的一个有效用法是提示用户响应以决定是否继续进程。这里提示输入y以继续处理n退出。如果用户输入Y、y或yes,处理继续执行case语句后面部分。如果用户输入N、n或no或其他响应,用户退出脚本。
/home/l/g/tomotoboy >cat caseans #!/bin/sh #caseans echo -n "Do you wish to proceed [y..n]" read ANS case $ANS in y|Y|yes|Yes) echo "yes is selected" ;; n|N|no|No) echo "no is selectd" ;; *) echo "`basename $0` : Unknown response" >&2 ;; esac /home/l/g/tomotoboy >caseans -n Do you wish to proceed [y..n] y yes is selected
case与命令参数传入
/home/l/g/tomotoboy >cat >> caseparam #!/bin/sh #caseparam if [ $# != 1 ];then echo "Usage:`basename $0` [start|stop|help]" >&2 fi OPT=$1 case $OPT in start) echo "starting..`basename $0`" ;; stop) echo "stopping..`basename $0`" ;; help) echo "stopping..`basename $0`" echo "Usage:`basename $0` [start|stop|help]" ;; *) echo "stopping..`basename $0`" echo "Usage:`basename $0` [start|stop|help]" ;; esac /home/l/g/tomotoboy >chmod u+x caseparam /home/l/g/tomotoboy >caseparam help stopping..caseparam Usage:caseparam [start|stop|help] /home/l/g/tomotoboy >caseparam start starting..caseparam
捕获输入并执行空命令
不一定要在匹配模式后加入命令,如果你原本不想做什么,只是在进一步处理前过滤出意外响应,这样做是一种好办法。如果要运行对应于一个会计部门的帐目报表,必须首先在决定运行报表的类型前确认用户输入一个有效的部门号,匹配所有可能值,其他值无效。用case可以很容易实现上述功能。下面的脚本中如果用户输入部门号不是234、453、655或454,用户退出并返回可用信息。一旦响应了用户的有效部门号,脚本应用同样的技术取得报表类型,在case语句末尾显示有效的部门号和报表类型。脚本如下:
#!/bin/sh # casevalid echo -n "enter the account dept No: " read ACC case $ACC in 234);; 453);; 655);; 454);; *) echo "basename $01`: Unknon dept No" echo "try..234,453,655,454" exit 1 ;; esac #if we are here, then we have a validdated the dept no echo " 1 . post" echo " 2 . prior" echo -n "enter the type of report: " read ACC_TYPE case $ACC_TYPE in 1)TYPE=post;; 2)TYPE=prior;; *) echo "`basename $0`: Unknown account type." >&2 "casevalid" 29 lines, 665 characters /home/l/g/tomotoboy >casevalid -n enter the account dept No: 454 1 . post 2 . prior -n enter the type of report: 1 now running report for dept 454 for the type post
发表评论
-
向脚本传递参数
2009-08-21 16:18 1655shift命令 向脚本传递参数时,有时需要将每一个参数偏移以处 ... -
shell函数
2009-08-10 00:18 1966函数由两部分组成: 函数标题。 函数体。 标题是函数名。函 ... -
后台执行命令——守护进程创建
2009-08-09 19:05 1690当你在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏 ... -
控制流结构——until、while、break、continue
2009-08-08 18:56 2771until循环 条件中1为真, ... -
控制流结构——for
2009-08-08 14:12 979for循环 for 变量名 in 列表 do 命 ... -
控制流结构——if then else
2009-08-05 18:49 2545if then else语句 If 条件1 //如果条 ... -
条件控制(test,expr……)
2009-08-04 18:23 1255测试文件状态 test test一般有两种格式,即: test ... -
再谈引号……
2009-08-04 15:37 957引号 /home/l/g/tomotoboy > ech ... -
shell变量及环境变量
2009-08-03 17:54 1510本地变量 显示变量 $GREAT_PICTURE =" ... -
登陆环境
2009-08-03 10:45 850首先看看/etc/passwd 它保存着用户名、加密后的密码等 ... -
Trap命令详解
2009-08-02 17:40 6419原文地址:http://koudai.36 ... -
ulimit命令详解
2009-08-02 17:30 2209原文地址:http://www.diybl.com/cours ... -
tr用法
2009-08-01 15:35 1788tr用来从标准输入中通 ... -
shell合并和分割
2009-07-31 12:43 2791• 实用的分类(sort)操作。 sort命令的一般格式为: ... -
shell输入输出
2009-07-31 12:38 761echo cat read 管道 '|' tee ... -
sed用法介绍
2009-07-30 15:21 2645输出第1行到第3行 -bash-3.00$ sed -n '1 ... -
awk使用
2009-07-29 16:29 1327awk 调用awk有三种方式调 ... -
shell中单引号和双引号的区别
2009-07-29 15:11 1074shell中单引号和双引号的区别 ''可以讲可执行命令文本化 ... -
grep用法详解
2009-07-29 13:45 2516grep grep一般格式为: grep [选项]基本正则表达 ... -
文本过滤
2009-07-28 00:02 7021.使用句点匹配单字符 句点“.”可以匹配任意单字符。例如,如 ...
相关推荐
1.4.7 DateTime结构——表示时间上的一刻 50 1.4.8 DAY函数——返回日期部分的整数 51 1.4.9 DayOfWeek属性——获取星期几 52 1.4.10 Equals方法——比较两个字符串对象 53 1.4.11 First函数——返回查询结果的第一...
答案:数据流 4. 成本——效益分析的目的是从____角度评价开发一个新的软件项目是否可行。答案:经济 5. 模块有四个基本属性,其中反映它的内部特性的是____。答案:逻辑 6. 确认测试可以发现软件系统是否符合用户的...
算法的3种基本控制结构是:顺序结构、选择结构、循环结构。 (4)算法基本设计方法 算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。 (5)指令系统 所谓指令系统指的是一个计算机系统能执行...
7.5.1控制流语句 7.5.2标号与goto语句 7.5.3CASE语句的翻译 7.6过程调用的处理 7.7类型检查 7.7.1类型系统 7.7.2类型检查器的规格说明 7.7.3函数和运算符的重载 7.7.4多态函数 练 习 第八章符号表 8.1...
第4章 流程控制——Java世界的航行舵手 42 4.1 if条件语句 42 4.1.1 简略形式 42 4.1.2 完全形式 43 4.1.3 语句的嵌套 43 4.2 switch多分支语句 45 4.2.1 基本语法 45 4.2.2 合法的判断表达式 46 ...
2.5.1三种基本控制结构58 2.5.2表达式语句和空语句59 2.5.3块语句60 2.5.4if~else分支语句61 2.5.5多路分支switch~case语句69 2.5.6当型循环while语句71 2.5.7直到型循环do~while语句72 2.5.8当型循环for...
二、流体的黏性——牛顿流体与非牛顿流体 三、流体的压缩性——可压缩与不可压缩流体 四、液体的表面张力 第二节 流体力学中的力与压强 一、质量力与表面力 二、绝对压强、相对压强与真空度 三、液体的汽化压强 四、...
11.5 控制流语句 11.5.1 IFELSE语句 11.5.2 CASE语句 11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 创建存储过程:基本语法 12.2 使用ALTER...
根据基本表结构及其数据生成 INSERT ... 的 SQL 简便的MS SQL 数据库 表内容 脚本 生成器 将表数据生成SQL脚本的存储过程 直接从SQL语句问题贴子数据建表并生成建表语句的存储过程 从SQL中的一个表中导出HTML文件...
11.5 控制流语句 11.5.1 IFELSE语句 11.5.2 CASE语句 11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 创建存储过程:基本语法 12.2 使用ALTER...
11.5 控制流语句 11.5.1 IFELSE语句 11.5.2 CASE语句 11.5.3 用WHILE语句进行循环 11.5.4 WAITOR语句 11.5.5 TRY/CATCH块 11.6 本章小结 11.7 练习 第12章 存储过程 12.1 创建存储过程:基本语法 12.2 使用ALTER...
2004——2005学年第一学期期终试题 一、 选择题(10%) 1. 软件需求分析阶段的工作,可以分为以下4个方面:对问题的识别、分析与综合、编写需求分析文档以及( )。 A. 总结 B. 阶段性报告 C. 需求分析评审 D. ...
能否关掉填充,或者控制结构域的对齐方式? 27 2.14 为什么sizeof返回的值大于结构大小的期望值,是不是尾部有填充? 28 2.15 如何确定域在结构中的字节偏移量? 28 2.16 怎样在运行时用名字访问结构中的域...
14.2.6 始终置顶——topmost属性 546 14.2.7 附属窗体 546 14.2.8 改变窗体的透明度 547 14.2.9 可视化继承 549 14.2.10 滚动窗体 549 14.2.11 mdi窗体 549 14.2.12 vb 2010中的mdi样例 550 14.2.13 ...
2.1 版本控制与目录树的转换 2.2 表达目录树的差异 2.3 增量编辑器接口 2.4 但这是不是艺术? 2.5 像体育比赛一样的抽象 2.6 结论 第3章 我编写过的最漂亮代码 3.1 我编写过的最漂亮代码 3.2事倍功半 3.3 观点 3.4 ...