00:00
嗨,各位同学大家好,欢迎来到这里,今天呢,我们来学习for循环语句。这个我们现在开始接触的就跟条件语句就不一样了啊,条件语句是一个一个匹配是吧,那for循环语句可以帮我们去减少一些重复的一些动作啊。呃,For循环是我们经常用到的啊,但是大家一定要警惕,不要去写死循环是吧,死循环就不好玩了啊好,今天呢,我们就来说一下for循环的,它的这个格式啊,或循环一般我们就是一个迭代啊,它的参数类型是可以迭代的。但是好for IE对吧,然后一个内容吧,可以说是一个数组啊,也可以是一个数组123对吧。好,然后接下来就开始写我们内容啊,度。Do,然后开始写我们的内容啊,比如说print啊,不是写错了啊,这是这是Python里边是吧?呃,我们用的是那个I啊I Dollar I OK,然后断啊,也就说这里面是一个循环是吧?是一个循环,然后这里面是一个循环,然后这里面就是来做一些动作啊,我可以把这些值都给循环过来。
01:19
啊,以此类推啊,它是先去这样去把每一个值对吧,赋值,第一次循环就把一赋值给I对吧,然后去做do和段之间的这些操作。是吧,然后我们把它给。处理完之后呢,下一次就是什么呀,就是把。二对吧,复制给I,然后再执行,然后再把三对吧是这样的一个过程。啊,那么接下来我们就可以直接照这个去写了啊,我们来新建一个for。SH。好,我们写一下声明啊。诶。
02:05
OK,然后开始写我们的内容。好,这时候大家来看一下效果啊,Sh four加SH,好,这报了个错啊。Fall in。Four dollars e。好,我来看一下哪里出错了,可能这块不需要输入括号啊,这个刚开始是一个误导啊,可能这块不需要输入括号。直接这样去写就可以了,所以说shell里边它这个就写的很随意啊。特别随意。而且一旦你掌握了多门语言。有时候写来写去,真的。可能就混了啊,混了对吧,这样就成功了对不对,好那么来说一下啊,这个123是一个什么呀,是一个list OK,是一个数组类的,我们就叫做列表啊列表。
03:14
列表啊,就是一个数组啊,它一个一个概念,它一般都是可遍历的啊,可遍历的那我们一般使用for循环语句呢,就是来遍历这些值,你看那它详细的执行过程就是这样的,同学们你可以通过SH-X啊,然后执行一下。你看第一次循环呢,就是把一赋值给了I,对不对,然后输出了一的值是吧,然后接下来第二次循环呢,它就把第二个值赋值给了I,然后做了一个打印,然后第三次呢,他就把第三个值。以此类推,一直复值对不对啊,一直复制啊,那么这是一个负循环啊,负循环就是帮我们去处理这些事情的啊,呃,这是一种,那么还有一些常见的一些事例,我们可以来找一个啊。
04:02
比如说我们来便利一下当前目录下的一些文件吧,好吧,我来便利一下当前我这个目录下面的所有的这个。呃,所有的这些文件好不好,好,那我们来看一下啊,怎么便利呢?同学们大家想想怎么去便利我下面所有的文件。OK,那我通过LS查看的是不是就是这些文件对吧,那我是不是可以把这里面去做一下我。啊,这里面不一定非要是I啊,I就是一个变量对吧,那么这个名称你可以自己去定义啊,比如说。For文件啊或fe对吧,好,然后这里面是一条命令是吧?命令呢,我们使用Dollar括号去括下。OK啊,或者是你使用这个反撇号也行,反撇号就是我们这个ESC键下边这个波浪符号对吧,按它啊,默认它是这样的啊,比如说我们是。LS对吧,比如说执行LS啊,然后我们去度口Dollar f。
05:07
是吧?OK,这是一个效果啊,我们先来看一下这个效果吧,好吧,啊,我们在这里面再写一个负循环。好,这时候大家来看一下啊。是吧,同学们是不是把当前所有的文件给列出来了,对吧?那么刚才我们第一次接触这个这样的一个符号,对吧?那么这样的符号叫反撇号啊,我一般看它反撇号啊,它是啊,这里面是如果要写的那点就不行了啊。呃,我在这里面给大家扩展一下吧。你可以设两个这个反撇号去表示啊,这个位置在哪儿知道吗?是在ESC键下面,OK。OK就在E键下面啊,它跟这个Dollar括号啊是一个道理啊,它俩是一样的,OK就是命令的获取命令的执行结果啊,OK他们都是获取命令的执行结果的啊,比如我举个例子,同学,我们先进入到普通的shell里面是吧,我这样执行个LS。
06:16
这还不能执行啊。啊,这个只能是,哎,这个只能在校里的执行啊。按道理来说,我这个is也行。好,来看一下啊。PWD。他这样是吧,好到了。括号,PWD。哦,看来一样啊,这个只能在那个shell里,Shell里边去使用,对不对,好OK,那我们来写一下这个for four.sh那个我们再改一改,好吧,再改一改,我们比如说在前边再改一改啊,你看啊同学们刀。括号二是吧。
07:01
Dollar。啊,不用到那的翻篇啊。PWD对不对,都是命令的执行结果啊,好,大家来看是不是LS先把当前所有的文件都给输出出来了,对吧?然后下面这行呢,就是PWD所执行的结果啊,你直接在校里面用是不行的。OK,直接在校里面直接去用不行啊,你只能在校脚本里面去用。好吧,这是他们两个的一个,呃,含义就是把命令的执行结果啊,或者或复制给这个变量。一样的啊,一样的道理。有的时候我们你看这些值是我们自己随便写的,能想出来对吧,但有些值呢,是通过某些命令执行完之后获取的,那这时候我们就是需要使用这个两个反撇号,还有这个do大括号啊,这个小括号。好吧,这个复循环啊。这是一个负循环啊,常用的一个或循环语句,那这个感觉没有太多啊,太多的一些实例啊,那我举个例子,同学们,我们来这里面再扩展一个实例啊,批量的。
08:12
我们可以,其实之前我们用负循环,就是批量的给主机去做一些事情啊,比如说啊,我们去。复制一些文件吧,好吧,我们批量的去复制文件啊,做一个小实例,好,怎么批量复制去复制一个文件呢?我们举个例子啊,比如说呃,我们定义一下我们。这些文件在哪里啊,比如说。Four。D啊,比如说。OPT。然后OPT,然后tmp OK,好,然后我们do do什么呢?哎,我们去给他创建一个文件吧。呃,这样啊,我们就是。
09:02
Touch。Dollar。电儿下的。test.tok,创一个库文件,OK,然后断啊,这样的话就批量的去创建文件了。OK,这个能明白吧。好,那我们来试一下啊,Vm for sh。然后把它放到最下面。待会儿我们直接去验证了啊,咱们也可以在这里面加两行啊。呃,Touch完了之后我们就L一下。Dollar tr。下载TTS。OK,那么这样的话就能验证它是否存在了啊。啊,OK,这里面报错了是吧?第23行LL出问题了啊,那么LL我们需要给它改成LS杠。
10:05
好,这里面touch是吧。呃,不能访问OPT下的,没有这个文件是吧。OK,这个还不能这样去touch是吧?不能去touch啊,呃,这个为什么不能touch,是因为我们在写脚本的时候,我们少写了一个根是吧?我们是不是应该在这里面写个根啊?对吧,写跟啊OK,这有对齐了啊OK是不是已经有了,同学们有了吧。看这两个文件就已经创建好了,对吧,你看有的时候我们就不用写这么多行了啊,一行就可以了。你看我之前跟大家说了分号了是吧,那我可以这样去写,你看这样去写是可以的,对不对,同学们这样是可以的啊,这边加个分,那么我们写成一行呢,写成一行也比较方便啊,我们可以这样body in。是吧,OBT,然后tmp分号是吧,然后度。
11:02
好,OK,然后分号。啊对,Do不用加符号啊,Do,然后touch。我先IO吧,是吧,IO到那点R。对吧,好分号对这样就可以了。OK,这就可以了啊,你看我们来试一下。这样的话的一一条语句就显示出来了,而且看着还比较方便一些,对吧,你看是不是出来了。包括我们所做的一些事情啊,都可以在这里面去写啊,这里面你看这是这是一条语句是吧,如果有多条语句,你在这里面再去写呗。吧,再去多写点就可以了啊,比如说IQ123。是吧,你看。如果多个命令在这里面继续去写就可以了,对,这样是把这条语句啊去写成什么呀,写成一行啊,写成一行显示。OK,这是负循环啊,这是负循环。
12:05
那还有一种或循环呢,是跟C语言这种或循环很类似啊,大家看到了也要啊,也要去了解一下啊,跟C语言类似的这种或循环呢,是这样的格式。还有一种这种故事啊,括号啊。呃。I等于,比如说I等于十对吧,分号,然后I小于20啊,然后分号后面加个条件哎,降价啊,这样的话,它就会不断的再去便利啊OK。然后接下来也是这样去写啊,我就是没有读了。呃,我试一下啊,可能是有度。Do Apple到了,哎,是吧是吧,啊,大概是这样的一个过程啊。这是类似于C语言的这种写法啊。我们把它放到最前面吧。
13:05
OK。For。好,第段行我看一下啊,第八行出问题了是吧,那可能不是这么写的啊,不用写这个度了。感觉少点东西似的。是吧,肯定还是少东西啊,那么它应该是。我记得是这样写的吧,我看一下啊。这样试一下啊。还是报40。艾,这块有问题啊。那么我估计这还得写多。Do。OK,这样就完成了,对吧,那么类似于C语言的这种写法啊,就是这样去写的。对吧,同学们就这样去写,OK,这是C语言的风格啊,类似于非C语言风格。C语言。
14:09
好,打不了中文啊。C了,好吧,那这个就是它有几个部分来组成的,第一个部分就是呃,首先给变量赋一个值对吧,第一部分就是给它赋个值,然后第二部分呢,是给这个加一个条件是吧,它是大于多少还是小于多少,就是自己灵活去定义的一个条件,然后最后呢,是改变这个条件啊,比如说一直往上加是吧,一直往上加。好,最后就是这样的一个结果。OK,最后就是这样的一个结果啊。那这样就完成了这个C语言类型的这种循环啊。啊,这是C语言的一个循环,那还有一个实例,就是关于循环的一个跳出,啊,跳出循环。
15:07
啊,还有是啊,跳出循环两个关键字啊,一个是continue con。TU。肯定要这样写的吗?啊,还有一个是那个。这就是continue吧,对吧,就是应该这些啊,这个是跳出循环啊,跳出本次循环。继续下次循环,OK,这是continue break呢,是跳出。直接跳出所有循环了,OK,肯定是继续的意思嘛,对吧,他还能去继续啊,假如说我们现在写一个实例啊,比如说我们举个例子吧。For name in张三李四王五对吧?OK,那么接下来我们要干什么呢?我们去。
16:09
判断一下啊if啊,然后我们这里面去判断是吧,到内等于等于啊等于等于谁呢。等于你看啊,比如说等于张三是吧,我就让他跳出去。OK,然后我们写一个IO。张三,对吧,然后我们让它跳出去啊,就是比如说我们先加个平均扭。E是吧,Continue啊加continue之后呢,我们来看它的效果。来对吧,你看第一个它就是啊,第一个就是啊,你加了continue之后啊,大家来看下效果啊。我们先写这样的一个括。
17:05
我觉得空格见不到啊。变下的对吧,OK。然后我们来写一下啊,Four name in张三对吧,那么这时候大家来看一下它的用法,它这个输出SH-X。four02.sh是吧,这时候大家来看啊,哎,这里面肯定就报错了,CT没有T没有没有这个。没有A是吧,好,Continue啊。大家看一下他输出是输出是什么。哦,错了,这里面还没有输出是吧,我们来改一下这个条件啊,这么写是不行的。我们在这里面写soon。这里面你看虽然说等于张三的话才会输出是吧,那么这里面加个else最基本的啊L。
18:05
Dollar name OK,这样就OK了啊,这样一个简单的小实例,我们就能看出来这个这个continue跟那个break他们之间的一个区别啊。好,我们粘贴一下。好写好了对吧,好,我们来执行一下零二,好大家来看啊,当你执行了continue之后,它是怎么来执行的呀?啊,它是这样的。所以你在执行的时候是吧,他第一次呢,先去判断啊,先去判断啊,Dollar内第一次你看把张三给了到给了这个变量name对不对,好,接下来开始循环,开始执行,这里面的如果name等于张三的话,然后我们会把张三给打印出来。对不对,张三给打印出来啊,然后接下来执行的continue啊,继续下一次的循环。
19:01
对吧,继续下一次循环对不对,那么接下来就开始是锂对不对,然后打印锂啊,然后接下来就是打印房屋对吧?好,那么此时此刻呢,咱们再来看一下,我要把。我要把这个货零二里面的这个。Continue,改成啊,改成我们的。啊BB啊break啊break是比较狠的是吧,先来看一下直接的效果对吧,直接效果是这样的啊,然后我们来加杠X,大家可以看一下。是吧,加了个break之后,后面的循环就不再继续了。明白吧,这是循环啊,这是循环。这是跳出循环,OK,这样就是避免死循环嘛,对吧,当一个条件匹配了,我就终止了这一整个循环。啊,这是完整的一个过程。
20:01
好,这是这块啊,这是这个continue加上那个break,后期我又改成了break啊,在这个脚本里面,所以大家注意点。嗯,关于循环语句呢,就说这么多吧,这个循环语句也够用了啊,咱们下来的时候,呃,练一下它什么时候会用到这个for循环啊,啊有的时候我是用它去给不同的主机去拷贝文件啊,比如说我想给五台主机去复制同一个文件是吧,或者让他们执行同一个脚本,那这时候我就不用登录这五台机器分别去执行这条命令了。啊,我直接在一台主控机器上去通过一个货循环对吧,就调这些主机让他去执行就可以了。就远程调SSH嘛,对吧,批量的去调啊。所以说这个循环语句呢,能够帮我们解决很多啊,手工以前手工的一个问题,能够帮我们做成自动化啊。好,那么这节课我们先到这里啊,就是破循环的一些使用方法。
我来说两句