00:00
同学大家好,欢迎来到这里,今天呢,我们来学习关于case语句的一个使用啊。呃,前面呢,我们学学了这个if语句是吧,大家基本上能够写这个条件的一些匹配了啊,那么case语句呢,也比较简单,我们今天先直接说它的这个语法格式了,然case就是这样去写啊,都是小写的,后面是一个条件啊变量对吧,Case一个变量,然后in。好,这个是我往下写就可以了啊。呃,然后后面呢,我们就写啊,这个是我们找一个变量啊,看一下这个变量的值在呃,哪哪几个模式当中啊,这里面有个模式的概念,OK,模式的概念,比如说第一个模式啊,比如说是模式一。Method对吧,METHOD01啊,如果是第一个模式,注意是一个括号啊,只有一个右括号,OK,如果是第一个模式啊,然后我们要执行什么。
01:04
明白吧?两格四格吧。比如说这是啊。Met method01所要做的事情。写SH是吧,OK,然后两个这个分号代表结束,OK,然后开始写模式二。没事儿。然后下面也是一样的模式二的一些语句。OK,我杀了一句,然后这个代表结束。OK代表着结束啊,然后你下面还可以写很多个意思,一直去写就可以了啊,然后在这里面必须得写个默认的啊,默认是星啊,默认星,然后这是我们要执行的这个默认语句,OK default sh啊默认的语句,然后我们就。结束对吧,然后最后结束呢,就跟那个if对吧一样啊,它是倒过来,把case倒过来啊,EAOK是这样的一个格式啊,它这个使用场景是在什么情况下啊,大家应该知道在DEMO里面有这样的一条指令吧,就是我们通过service啊,或者是system对不对。
02:22
System c啊什么啊啊叉叉叉是吧,System CL啊,Start叉叉叉对吧,还有system ctl啊,Reload啊,叉叉叉中间都是一些参数对不对,那么这个就可以完全用于写这种服务的一些脚本啊,比如说我们case后边的第二个参数对吧?看它的值,如果是cities,那我执行,让他看它的状态对不对,如果是start啊,那我就让它执行start。啊,如果什么都不写,默认我给他一个提示信息啊,或者说是一些啊,什么样的操作啊,都可以自己去灵活的去定义。
03:08
OK。好,那这是这是这块。好,那么然后呢,我们接下来就开始写个实例,好吧,写个实例我们一起来看一下啊,首先呢,开启一个term啊,打开一个终端。我把它放到最大。嗯,写个什么样的实例呢?我们进到shell里面,我们写一个服务启动脚本吧,好吧。SHOK,好。其实有的时候你在这个VM里边写这些东西啊,特别不方便啊,所以我建议我们直接在这里面去写好不好,OK,我们正好来看一下,你写脚本的时候,经常用的就是编辑器啊,在编辑器里边去写,你比如说我们常用的这个sla,对吧,这里面去写也行啊。
04:03
比较好一些是吧,而且语法看起来舒服一些,而你用VM毕竟还是比较没有变编辑器那么方便啊。好,这里边我直接在这里面就写了啊,我们先去写一个呃服务脚本吧,给大家来说一下这个服务脚本它的一个基本的格式啊,呃,那么我们可以去参考一下在ETC下的nit.d啊,这是以前默认的一个脚本。我看还有吗方式。OK,这里面大家来看吗?大家看了吗?同学们,Case对吧?一个command啊,一个变量对不对,In start啊,然后执行什么对吧,执行完了然后两个分号stop,执行什么对吧?Load或者是tryload啊,执行什么什么对不对?好,那么接下来我们就来照这个去写,OK,你看这是个服务请脚本啊,那么我们接下来就写一个简单的服务请脚本它但它没有实质的效应啊,我们来写一个简单点的啊,比如这样吧,我们让他。
05:12
嗯,我们写一个服务启动脚本,那就可以这样去写啊,我们就是case好,然后写我们的变量是吧,到了。啊,因为现在我们学这个传参这块啊,我们先在这里面定义啊,比如说option。嗯。Option等于。Start是吧,比如说option等于start,然后我们这里面就可以去匹配啊,我们这个Dollar option。对吧,In,好,如果它的值是start。OK。那么我让他执行IO。Start,好吧,多点啊。
06:05
对吧,这样的一个提取器好写完了,那么如果是stop啊,那stop我们。怎么办呢?我们就输出一个IO啊。Service。Server。Stopping。OK,好嘞,写完了对吧,好,然后这是stop,然后可以再加一个restart是吧,Restart。啊,然后刚才有一个是吧,一个管道符号就是或的意思是吧,Art或者是reload,那么我就让他执行什么呢?好,我是先说啊,So stopping。对吧,我们重启不就是先停止嘛,对吧,先停止,然后我们打出来一个消息啊,然后so stop对不对,OK,这样说明就是我们停已经停完了啊,然后开始S。
07:12
OK。就都有一些提示信息啊,没有实质性的一个动动作好,那么还有一个就是我们写完之后要注意两个分号啊,还有一个是默认的是吧,就是星号。好,我们来写最里边的。Icon啊,这个如果星号就相当于它输入的没有匹配star也没有匹配stop也没有匹配这些对不对,那么这时候怎么办呢?我们就可以给他提示信息嘛,是吧?IO啊,然后我们告诉他这个用法是吧,SH叉叉叉点SH后面。我们要用哪个呀,用这个。啊,然后start对吧,然后stop,然后restart。Load,对吧?我们告诉他只能用这些关键的,OK,好,我们也结束好整个语句就行了。
08:08
EAC。呃,EAC啊。OK,那么写好了,我们来运行一下好吧。刚才搞错了啊,怎么打开这个。好,关掉。好,我们来选中这些内容啊,然后在我们这个拜里边啊。OK,我们来编辑一下KSH。好,这样的话,我们这样的一个脚本是不是就写完了对吧,这样就写好了啊好保存一下,然后我们执行一下case对吧,Server s是S啊,然后我们把这个里面,比如说给它改成这个,改成一个其他的值,你看我随便写个值,那么这个值现在它怎么执行呢?他会这样去执行啊,它判先判断这个值是不是start,哎,不是在判断它值是不stop也不是。
09:08
判断是不是restart或者reload也不是对吧,那最后匹配的就是这个什么,默认的这个值,那么他最后应该是告诉你啊,你要这么去用。对吧,你要这么去,OK,好。呃,这里边儿我简单说一下位置变量啊位置参数OK,你像这样用的话,我们天天去改脚本是不是很不方便,我现在先把这个值动态的给放到脚本里边怎么办?啊,刚才我说的这个关于case语句啊,现在就已经说完了啊,这是它的一个用法,后面大家往里套就可以了啊,它基本的逻辑就是这样的一个过程。OK,基本上的逻辑啊,就是这样的一个过程,那然后我来说的就是这个位置位置变量啊,咱们之前说变量的时候好像没说是吧,位置变量啊,位置变量就是啊,She里面它是有DO1啊。
10:03
得一到二对吧,到三啊等等等等等等,以此类推,OK,以此类推。一此类,对啊,这都是参数,OK,你可以理解啊,就是比如说我举个例子,同学们啊,我们这样执行一个脚本是吧。那么这是后面的第一个参数就是DO21OK,那么接下来我们要改造一下这个脚本啊,怎么改呢?大家来看一下,我们把这个值啊指向一个变量啊到了。到一对不对,指向于到一啊,那么这时候我们来执行SH,然后K加sh start。你看starting是吧,然后reload,好stoppingload是吧,然后stop对吧,是这样就OK了啊,这个就是DOLLAR1的值,那以此类推,我们到二的值呢,就直接往这里加就可以了,就空格这样去加。OK,这是一个位置变量,OK,位置变量啊好,那么这个脚本最后我们可以优化成这样,你看这种情况我们不用不用加option了,对吧,我们直接把这里面改成谁改成DO1就可以了。
11:12
两个逗号一好保存,然后我们来执行价。是吧?Stop,对不对?好,再来一个啊,Cities不存在,是不是告诉你出现这种错误对吧?好,那么这就是我们所说的这个位置变量,OK,位置变量就是这样去写的啊。这是我们刚才给大家扩展了一下位置变量的一个用法,然后呢,我们就把这个case这个脚本是吧,做了一个简单的优化。最后就是这样的一个结果。好吧,这是最后一个结果啊嗯,总之case这块啊,主要就是来写服务启动脚本的啊,或者是执行的逻辑是吧。比如说让他去安装啊,去干什么,我们经常会用到kiss。
12:04
啊,就不用再写一个一个的什么if语句啊,对吧。不用写那么一堆了,对吧,我们就可以用这个case这样去完成啊。那这两个条件它还可以混着用对吧,所以说非常方便啊啊那么这是这块,那关于位置的变量呢,我这里边说的比较模糊啊,那么DOLLAR0啊,大家知道啊,DOLLAR0其实就是这个脚本OK。对,脚本。来吧,那我给大家来举个例子啊,你看啊,我来在case里面我加一个I。就在上面找ICO dollar0。E Dollar。1OK,那么这时候我们再来执行一下啊,K的sh start是吧,那么到零就是这里,OK,这是到二零,明白吧,这是一个位置参数啊,总之它是这样去传参的,把参数传到里面去。
13:03
OK,是用这样去占位的啊,到到二零到一,那后面呢,你就空格里隔开就可以了。好吧,到零啊零。是脚本本身。后面都是参数。那么这些参数啊,每个参数。多个参数需要通过空格分割,OK,这点要注意一下啊。好,那么这是case语句的一些用法,以及一个基本的一个实例啊,就是这么简单啊,没有多难,那么大家下来的时候去练一练就可以了,好,那么case语句我们今天说到这里啊,感谢各位同学。
我来说两句