shell esac语句里的esac是什么意思

Shell 条件语句
Shell 条件语句
Windows10用户联盟QQ群:
在编写shell脚本,有可能是一种情况,当你需要采取一个路径两条路径。所以,需要利用条件语句,让程序作出正确的决策和执行正确的动作。
UNIX Shell支持条件语句,从而根据不同的条件下执行不同的操作。在这里,我们将解释以下两个决策语句:
if...else&语句
case...esac&条件语句
if...else&语句:
if else语句是有用的决策语句,可以用来从一个给定的选项中选择一个选项。
UNIX Shell支持以下形式的if.. else语句:
大部分的 if 语句检查前面的章节中讨论的关系运算符的关系。
case...esac 语句:
if...elif 可以使用多个 elif &语句执行多分支。然而,这并不总是最佳的解决方案,尤其是当所有的分支依赖于一个单一的变量的值。
UNIX Shell支持 &case...esac&语句处理正是由于这个情况,它这样做更有效地比 if... elif 语句。
目前只有一种形式的情况下,这里详细case...esac&语句:
UNIX shell 的 case...esac&语句,比较像其他编程语言里的 switch...case ,如C或C + +和Perl等非常相似。
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&博客访问: 330615
博文数量: 103
博客积分: 2479
博客等级: 大尉
技术积分: 987
注册时间:
IT168企业级官微
微信号:IT168qiye
系统架构师大会
微信号:SACC2013
分类: 系统运维
linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case)。下面我将通过例子介绍下,各个语句使用方法。&一、shell条件语句(if用法)if语句结构[if/then/elif/else/fi]&if 条件测试语句 thenaction[elif 条件actionelseaction]fi&如果对于:条件测试语句不是很清楚,可以参考:linux shell 逻辑运算符、逻辑表达式详解shell命令,可以按照分号分割,也可以按照换行符分割。如果想一行写入多个命令,可以通过“';”分割。如:[root@test8 test]# a=5;if [[ a -gt 4 ]] ;then echo 'ok';&&&&&&&&&&&&&&&&&&&&&&& ok & 实例:(test.sh) #!/bin/sh scores=40;if [[ $scores -gt 90 ]]; then&&& echo "very good!";elif [[ $scores -gt 80 ]]; then&&& echo "good!";elif [[ $scores -gt 60 ]]; then&&& echo "pass!";else&&& echo "no pass!"; &
条件测试有:[[]],[],test 这几种,注意:[[]] 与变量之间用空格分开。& 二、循环语句(for,while,until用法):•&for循环使用方法(for/do/done) 语法结构:&1.for … in 语句for 变量 in seq字符串doactiondone说明:seq字符串 只要用空格字符分割,每次for…in 读取时候,就会按顺序将读到值,给前面的变量。实例(testfor.sh):#!/bin/sh for i in $(seq 10); do&&& echo $i; 2.for((赋值;条件;运算语句)) for((赋值;条件;运算语句)) do action
实例(testfor2.sh): #!/bin/sh for((i=1;i<=10;i++));do&&& echo $i; &#8226;&while循环使用(while/do/done) while语句结构while 条件语句doaction实例1:#!/bin/shi=10;while [[ $i -gt 5 ]];do&&& echo $i;&&& ((i--)); 实例2:(循环读取文件内容:)#!/bin/sh do&&& echo $done < /etc/ &until循环语句 语法结构:until 条件do actiondone意思是:直到满足条件,就退出。否则执行action.实例(testuntil.sh):#!/bin/sha=10;until [[ $a -lt 0 ]];doecho $a;((a—)); 结果:三、shell选择语句(case、select用法)&#8226;&case选择语句使用(case/esac) 语法结构case $arg in& &&& pattern | sample) # arg in pattern or sample& &&& ;;& &&& pattern1) # arg in pattern1& &&& ;;& &&& *) #default& &&& ;;& esac& 说明:pattern1 是正则表达式,可以用下面字符:&&&&&&&&&&&&&&&& *&&&&&& 任意字串&&&&&&&&&&&&&&&& ?&&&&&& 任意字元&&&&&&&&&&&&&&&& [abc]&& a, b, 或c三字元其中之一&&&&&&&&&&&&&&&& [a-n]&& 从a到n的任一字元&&&&&&&&&&&&&&&& |&&&&&& 多重选择 & 实例:#!/bin/sh& case $1 instart | begin)&&& echo "start something"& &&& ;;stop | end)&&& echo "stop something"& &&& ;;*)&&& echo "Ignorant"& &&& ;;esac 运行结果:====================== & testcase.sh startstart something&#8226;&select语句使用方法(产生菜单选择) 语法:select 变量name& in seq变量 do &&& action done实例:#!/bin/sh& select ch in "begin" "end" "exit"docase $ch in"begin")&&& echo "start something"& &&& ;;"end")&&& echo "stop something"& &&& ;;"exit")&&& echo "exit"& &&&&&& ;;*)&&& echo "Ignorant"& &&& ;;esac 运行结果:说明:select是循环选择,一般与case语句使用。&以上是shell的流程控制语句,条件,循环,选择。
阅读(1959) | 评论(0) | 转发(0) |
相关热门文章
给主人留下些什么吧!~~
请登录后评论。SHELL控制语句
if&[&expression&];&then
Statements
elif&[&expression&];&then
statements
else&statements
应该注意,if语句中else部分可以缺省。另外,if&语句的else部分还可以是else-if结构,此时可以用关键字&elif&代替&else&if&。
通常,if的测试部分是利用test命令实现的。其实,条件测试可以利用一般命令执行成功与否来作判断。如果命令正常结束,则表示执行成功,其返回值为0,条件测试为真;如果命令执行不成功,其返回值不等于0,条件测试就为假。所以if的语句的更一般形式是:
if&命令表1
then&命令表2
else&命令表3
case&字符串&in
模式字符串1)&命令
模式字符串2)&命令
模式字符串n)&命令
其执行过程是用&字符串&的值依次与各模式字符串进行比较,如果发现同某一个匹配,那么就执行该模式字符串之后的各个命令,直至遇到两个分号为止。如果没有任何模式字符串与该字符串的值相符合,则不执行任何命令。
在使用case语句时应注意:
(1)每个模式字符串后面可有一条或多条命令,其最后一条命令必须以两个分号(即;;)结束。
(2)模式字符串中可以使用通配符。
(3)&如果一个模式字符串中包含多个模式,那么各模式之间应以竖线(|)隔开,表示各模式是&或&的关系,即只要给定字符串与其中一个模式相配,就会执行其后的命令表。
(4)各模式字符串应是惟一的,不应重复出现。并且要合理安排它们的出现顺序。例如,不应将&*&作为头一个模式字符串,因为&*&可以与任何字符串匹配,它若第一个出现,就不会再检查其它模式了。
(5)case语句以关键字case开头,以关键字esac(是case倒过来写!)结束。
(6)case的退出(返回)值是整个结构中最后执行的那个命令的退出值。若没有执行任何命令,则退出值为零。
Shell中有三种用于循环的语句,它们是while语句、for语句和until语句。
while语句的一般形式是:
while&测试条件
其执行过程是,先进行条件测试,如果结果为真,则进入循环体(do&done之间部分),&执行其中命令;然后再做条件测试&&直至测试条件为假时才终止while语句的执行。例如:
while&[&$1&]
if&[&-f&$1&]
then&echo&"display&:&$1&"
else&echo&"$1&is&not&a&file&name&.&"
这段程序对各个给定的位置参数,首先判断其是否是普通文件,若是,则显示其内容;否则,显示它不是文件名的信息。每次循环处理一个位置参数$1,利用shift命令可把后续位置参数左移。
测试条件部分除使用test命令或等价的方括号外,还可以是一组命令。根据其最后一个命令的退出值决定是否进入循环体执行。
until语句的一般形式是:
until&测试条件
它与while语句很相似,只是测试条件不同:当测试条件为假时,才进入循环体,直至测试条件为真时终止循环。
for语句是最常用的建立循环结构的语句。其使用格式主要有三种,取决于循环变量的取值方式。
for&变量&in&值表
for&day&in&Monday&Wednesday&Friday&Sunday
其执行过程是,变量day依次取值表中各字符串,即第一次将&Monday&赋给day,然后进入循环体,执行其中的命令,显示出&Monday。第二次将&Wednesday&赋给day,然后执行循环体中命令,显示出Wednesday。依次处理,当day把值表中各字符串都取过&一次之后,下面day的值就变为空串,从而结束for循环。因此,值表中字符串的个数就决定了for循环执行的次数。在格式上,值表中各字符串之间以空格&隔开。
for&变量&in&文件正则表达式
其执行过程是,变量的值依次取当前目录下(或给定目录下)与正则表达式相匹配的文件名,每取值一次,就进入循环体执行命令表,直至所有匹配的文件名取完为止,退出for循环。
for&i&in&$*&或者&for&i
命令表&命令表
这两种形式是等价的。其执行过程是,变量i&依次取位置参数的值,然后执行循环体中的命令表,直至所有位置参数取完为止。
break命令和continue命令
break命令可以使我们从循环体中退出来。其语法格式是:
break&[&n&]
其中,n表示要跳出几层循环。默认值是1,表示只跳出一层循环。
continue命令跳过循环体中在它之后的语句,回到本层循环的开头,进行下一次循环。其语法格式是:
continue&[&n&]
其中,n表示从包含continue语句的最内层循环体向外跳到第几层循环。默认值为1。循环层数是由内向外编号。
用于处理位置变量,每一次一个变量从左向灰地处理。每次把每个变量向左移动一个位置,将当前的$1参数丢弃。
Shift&number
默认number是1,即左移一个位置。
Shell执行脚本时,其实是生成了一个子shell,用这个子shell来执行脚本。
阅读(...) 评论()& & 一、首先来讲讲if...then...fi 语句& & 这里的条件判别式类&#20284;于程序设计语言中的if...else 语句。但是在语法上稍有不同:1、单判别式的语法,即只有一个if 的情况。这种情况的语法是:& & if [ 条件判断式 ] ; then& & 条件成立时执行操作& & fi
#结束判别式的标志& & 下面是一个具体的例子。他根据用户的输入时y/Y ,n/N 还是其他的做相应的判断。& & & & 这里需要注意的是 if 和 “[” 之间一定要有一个空&#26684;。“]”和";"之间可以没有空&#26684;。then 到fi之间的执行语句是没有分号的。vcD4KPGgyPjKhor7f09C24M/uxdCx8Mq9tcTT77eooaPA4CYjMjAyODQ709qzzNDyyei8xtPv0dTW0LXEIGlmLi4uZWxzZSBpZiAuLmVsc2UuLrXIINTac2hlbGwgc2NyaXB0tcTT77eo1tDKx8jnz8K1xNDOyr2jujwvaDI+CjxwPjwvcD4KPHA+aWYgWyDM9bz+xdC2z8q90rsgXSA7IHRoZW48L3A+CjxwPsz1vP7Su7PJwaLKsda00NCy2df3PC9wPgo8cD5lbGlmIFsgzPW8/sXQts/Kvbb+IF07IHRoZW48L3A+CjxwPsz1vP62/rPJwaLKsda00NCy2df3PC9wPgo8cD5lbHNlPC9wPgo8cD61scz1vP4xLDK++bK7s8nBosqx1rTQ0LXEstnX9zwvcD4KPHA+ZmkgIDwvcD4Kvt/M5bXEwP3X077Nsru+2cHLo6zWu9KqsLTV1dXiuPbT77eovs2/ydLUwcuhowo8aDE+tv6hos/Cw+bAtL+0v7QgY2FzZS4uLmVzYWPT777kPC9oMT4KPHA+1NrO0r+0wLSjrNTaseTBv8i3tqi1xMfpv/bPwmNhc2XT777kvc9pZtPvvuTKudPDxvDAtLj8vNO88rHj0rvQqaGj0vLOqmNhc2XKocilwctpZiC4vbzTtcTF0LbPuf2zzKOstvi9q8XQts+1xNPvvuTSstaxvdO3xcjr19S8urXE0++3qKGjPC9wPgo8cD5jYXNlICSx5MG/w/uzxiBpbjwvcD4KPHA+JnF1b3Q7tdrSu7j2seTBv8TayN0mcXVvdDujqTwvcD4KPHA+s8zQ8rbOPC9wPgo8cD47OyAgCiPV4sDvysfBvbj2t9a6xbT6se212tK7uPbF0LbPtcS94cr4PC9wPgo8cD6hsCC12rb+uPax5MG/xNrI3aGxo6k8L3A+CjxwPrPM0PK2zjwvcD4KPHA+OzsgPC9wPgo8cD4jLi4uINXiwO+/ydLU09C24Lj2xdC2z9PvvuS1xLPM0PK2zjwvcD4KPHA+KikgIDwvcD4KPHA+tbHS1MnPy/nT0LXExdC2z775srvC+tfjtcTKsbry1rTQ0LXEstnX96GjPC9wPgo8cD47OzwvcD4KPHA+ZXNhYzwvcD4KPHA+z8LD5r7ZuPbA/dfTo6zL+7j5vt3Tw7untcTK5MjrwLTK5LP2ttTTprXEJiMyMDU0MDujujwvcD4KPHA+PGltZyBzcmM9"http:///uploadfile/Collfiles/4.jpg" alt="">
声明:该文章系网友上传分享,此内容仅代表网友个人经验或观点,不代表本网站立场和观点;若未进行原创声明,则表明该文章系转载自互联网;若该文章内容涉嫌侵权,请及时向
上一篇:下一篇:
相关经验教程
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
论文写作技巧&&/&&&&/&&
Shell case esac语句
case ... esac 与其他语言中的 switch ... case 语句类似,是一种多分枝选择结构。
case 语句匹配一个值或一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:
case工作方式如上所示。取值后面必须为关键字 in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。;; 与其他语言中的 break 类似,意思是跳到整个 case 语句的最后。
取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。
下面的脚本提示输入1到4,与每一种模式进行匹配:
echo &#39;Input a number between 1 to 4&#39;
echo &#39;Your number is:\c&#39;
case $aNum in
echo &#39;You select 1&#39;
echo &#39;You select 2&#39;
echo &#39;You select 3&#39;
echo &#39;You select 4&#39;
echo &#39;You do not select a number between 1 to 4&#39;
输入不同的内容,会有不同的结果,例如:
再举一个例子:
#!/bin/bash
option=&${1}&
case ${option} in
-f) FILE=&${2}&
echo &File name is $FILE&
-d) DIR=&${2}&
echo &Dir name is $DIR&
echo &`basename ${0}`:usage: [-f file] | [-d directory]&
exit 1 # Command to come out of the program with status 1
运行结果:

我要回帖

更多关于 shell 1是什么意思 的文章

 

随机推荐