- 浏览: 166855 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
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 1703shift命令 向脚本传递参数时,有时需要将每一个参数偏移以处 ... -
shell函数
2009-08-10 00:18 2014函数由两部分组成: 函数标题。 函数体。 标题是函数名。函 ... -
后台执行命令——守护进程创建
2009-08-09 19:05 1751当你在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏 ... -
控制流结构——until、while、break、continue
2009-08-08 18:56 2851until循环 条件中1为真, ... -
控制流结构——for
2009-08-08 14:12 1029for循环 for 变量名 in 列表 do 命 ... -
控制流结构——if then else
2009-08-05 18:49 2630if then else语句 If 条件1 //如果条 ... -
条件控制(test,expr……)
2009-08-04 18:23 1321测试文件状态 test test一般有两种格式,即: test ... -
再谈引号……
2009-08-04 15:37 1001引号 /home/l/g/tomotoboy > ech ... -
shell变量及环境变量
2009-08-03 17:54 1554本地变量 显示变量 $GREAT_PICTURE =" ... -
登陆环境
2009-08-03 10:45 901首先看看/etc/passwd 它保存着用户名、加密后的密码等 ... -
Trap命令详解
2009-08-02 17:40 6497原文地址:http://koudai.36 ... -
ulimit命令详解
2009-08-02 17:30 2281原文地址:http://www.diybl.com/cours ... -
tr用法
2009-08-01 15:35 1855tr用来从标准输入中通 ... -
shell合并和分割
2009-07-31 12:43 2826• 实用的分类(sort)操作。 sort命令的一般格式为: ... -
shell输入输出
2009-07-31 12:38 807echo cat read 管道 '|' tee ... -
sed用法介绍
2009-07-30 15:21 2710输出第1行到第3行 -bash-3.00$ sed -n '1 ... -
awk使用
2009-07-29 16:29 1394awk 调用awk有三种方式调 ... -
shell中单引号和双引号的区别
2009-07-29 15:11 1115shell中单引号和双引号的区别 ''可以讲可执行命令文本化 ... -
grep用法详解
2009-07-29 13:45 2559grep grep一般格式为: grep [选项]基本正则表达 ... -
文本过滤
2009-07-28 00:02 7501.使用句点匹配单字符 句点“.”可以匹配任意单字符。例如,如 ...
相关推荐
数据结构课程设计——运动会分数统计 C++ 在本次课程设计中,我们需要实现一个基于C++的运动会分数统计系统。系统的核心是有效地存储和处理比赛数据,包括学校信息、比赛项目及成绩,然后根据这些数据进行各种统计...
在Swift编程语言中,控制流是程序执行顺序的关键部分,它决定了代码如何根据条件和循环进行执行。控制转移语句则是改变程序正常流程的一种手段,它们允许你在特定条件下提前结束循环或者跳出多重嵌套结构。本教程将...
本文将深入解析Java中的三种核心控制流语句——if、for、while及其变体,并通过具体的实例帮助读者更好地理解和运用这些语句。 #### 第一章:if语句的精妙 **1.1 基础语法与应用** if语句是最基本的条件判断语句...
4. **控制结构** - 条件语句:if, if-else, switch-case。 - 循环:for, while, do-while循环,以及break和continue语句。 - 分支结构:三元运算符(condition ? expr1 : expr2)。 5. **方法(函数)** - 方法...
1. **基本语法**:变量声明、类型转换、控制流(if-else、switch-case、循环)、函数定义和调用等。 2. **指针**:作为C语言的核心特性,指针用于高效地操作内存,实现复杂的数据结构如链表、树等。 3. **结构体与...
1.4.7 DateTime结构——表示时间上的一刻 50 1.4.8 DAY函数——返回日期部分的整数 51 1.4.9 DayOfWeek属性——获取星期几 52 1.4.10 Equals方法——比较两个字符串对象 53 1.4.11 First函数——返回查询结果的第一...
图书管理系统通常包括图书的添加、删除、查询、借阅和归还等功能,涉及到数据库操作和控制流等核心编程概念。 【可能涉及的知识点】 1. **C语言基础**:包括变量定义、数据类型、运算符、控制结构(如if-else、...
本讲座主要探讨了控制流测试,这是结构化测试的一种形式。 首先,回顾上周二的讲座内容,我们了解了软件测试的基础概念,包括测试用例、测试数据等。基于风险的功能测试强调根据功能的风险等级分配测试资源,通过...
7. **活动图(Activity Diagram)**:活动图用于表示业务流程或系统执行的步骤,类似于流程图,关注控制流和数据流。 8. **组件图(Component Diagram)**:组件图描述软件系统的物理架构,显示软件组件及其依赖...
2. **流程控制**:讨论了条件结构、循环结构(For Loop、While Loop)、Case结构等,这些都是实现复杂逻辑的关键。 3. **数据流编程**:LabVIEW是事件驱动和数据流编程模型,书中会解释这种模型的工作原理和优势,...
本教程以日本建筑协会(AIJ)公开的验证案例——Case D为例,该案例包括各种不同类型的建筑模型,适合用于CFD软件的实验数据验证。教程首先指导如何将几何模型导入ICEM。ICEM使用块(Block)的概念,将复杂的几何体...
#### 一、多分支选择结构——`switch`语句 在C语言程序设计中,`switch`语句是一种常用的多分支选择结构,用于实现根据某个表达式的值来选择执行不同的代码块。这对于处理具有多个选项的情况非常有用。 **1. `...
LabVIEW提供了两种主要类型的分支结构——选择结构(选择结构函数)和判断结构(If Case结构)。选择结构允许基于单个条件执行不同的分支,而判断结构可以处理多个条件组合。 3. **循环结构**:循环是重复执行某段...
3. **控制结构**:包括条件语句(if...else, switch...case)和循环语句(for, while, do...while)。这些结构用于控制程序流程,根据不同的条件执行不同的代码块,或重复执行某段代码直到满足特定条件。 4. **函数...
首先,C++程序的基本结构通常包括预处理指令、函数定义、变量声明和控制流语句。预处理指令以`#`开头,如`#include`用于引入头文件,`#define`用于常量定义。头文件中包含了库函数和类型定义,如`<iostream>`是输入...
接下来,掌握MATLAB的控制流语句是编程的关键。这包括条件语句(如if-else-end)、循环语句(如for和while)以及开关控制(switch-case-end)。这些语句允许你根据特定条件执行不同的代码块,实现复杂逻辑。 函数是...
从给定的文件信息中,我们可以提取出关于Ruby编程语言的多个关键知识点,这些知识点涵盖了Ruby的基本语法、对象导向特性以及控制结构等重要方面。以下是对这些知识点的详细阐述: ### 1. HelloWorld 示例 在任何...
概述部分可能会阐述需求文档的目的、目标读者和文档的组织结构。 2. **2requirement_elicitation.pdf**:需求获取是需求工程的第一步,这个过程涉及到与客户、用户和其他利益相关者的沟通,以了解他们的需求和期望...