00:00
大家好,欢迎大家继续收看上硅谷的云计算课程,我是审查老师。这节课我们继续来学习位置参数变量,我们来看看剩下这三个东西,前两个乍看起来作用一样,它会把这个返回的是这个命令后面加的所有的参数。哎,那我们待会儿来解释这两个有什么区别啊,但是它的主要作用就是返回这个命令中所有的参数。第三个的作用是统计与这个命令参数有多少个统计参数的个数,那这个我们写一个简单点的脚本,我们看一下VI啊,这个就是参数的这个脚本这个单词行了,写这样一个行了。呃,PAR,哇塞,我还真棒了,这单词来写PARPAR啊,行,就就这个吧,PAR好了。那我们写这样一个脚本,我们干嘛,我们来看看它的作用,这里只要干嘛直接输出就行。
01:01
输出,我们先输出,看看刀了星号输出的是什么,那我想啊,我只想现在输出刀了星的这个普通符号,所以我用单引号把它括起来。那也就是说单引号括起来的所有内容是不是都只是普通字符对不对,所以我们说我们的作用是先输出这个,我想输就是有一个这个字符串,先输出一下,让我们能确定这东西是什么,对吧,后面到了些。得来。这句话的作用就是。待会儿会输出到了星是这就是刀了星变量里的值对吧,那子行了到了。到了。Is,什么Dollar里面的值,哎,现在看起来这两个东西输出完之后,它的结果应该是一样的,然后再看看Dollar井号里面是什么,我们试一下,你就先就只要这样简单的输出,我们就可以知道它里面是什么。
02:01
到了警。里面是什么倒了就。好,各位就写这样简单的三句话,我们执行一下。称之不七五我。给这个parliament这个赋值赋权限,点个开始执行这个家伙,然后呢,我们干嘛11223344好打四个参数回撤。你会发现。好,它还是输出了它的这个作用,那我们这样,我们加一个转移符看行不行。加了单引号还是不识别不行,没有把它变成普通符号,那我们加转移符啊。咱这转移符,我就想输出一个普通普通串。加俩转移符,我就想让它输出普通字符串啊,不想让它变成这个特殊符号啊。
03:01
好,那再执行一下,看看行不行,脚本调试一下。为什么老说叫调试脚本?哦,好可以了,那就不用再加这个后面这个Dollar了,前面的Dollar加就行了。好好,再再来一下调试一下好了。我们可以看到do德星和刀德问号,它返回的都是我们这个脚本的,把这里面所有的参数都返回进来了。直接返回进来,而到了井号返回的是数字四,它统计的是我后面加了四个参数,看懂了吗?看懂吗?我们再对一下文档。到了井号统计的是这个这个命令行中参数的个数。我这里有四个参数,所以Dollar井号统计出来是四个,而Dollar星号和Dollar问号的这个作用就是把这个参数,把这些变量都直接赋给这个参数,然后输出,也就是说它俩都代表的是你命令之后的参数,你写什么参数,它就会返回什么参数,这个参数写入到这里,哎。
04:05
那这俩的作用既然一样。我为什么要有两个参数来,这个代表这个命令中的所有参数啊,那它的区别在后面。当了星号的作用是把所有的参数看成一个整体,也就是说它把这些所有的内容都付给了这个变量,所以它输出到了星就输出了这。而do艾特的作用是把每个参数单独附在这里,啥意思把?先把幺幺付给艾特,再把R付给艾特,再把三三付给艾特,再把四次付给他。但如果只是这样简单的。这样输出一下是看不到这两个参数的结果啊,看不到它的区别的,看起来好像这两个大会是一样的,就是把所有的参数都输出了一遍,对吧?那为了要看到啊,行了,Do景我们就说完了,它代表的是个数,我们不再说了,我们为了要看一下do星和do艾特的区别,我们再写一个稍微复杂一点的脚本,那写这个脚本之前,我们先要讲一下for循环。
05:10
放,我们写一个循环脚本,各位,这个循环我们后面还会讲,但是我们现在必须要用。所以我们简单提一下这个东西。看着。我们。Linux当中事当中的for循环跟其他语言都不像,这个for很别扭,很别扭,以至于学完其他语言呢,第一个学员学完之后,他放到这儿之后都会觉得很很痛苦,那我们看一下放21123行了。然后。这里面是度。然后输出。输出。到了好各位,它是这样的,我们这个循环是这样的。在后面。有几个数?
06:00
不光是数啊,就是其他的符号也行,因为我说都是默认字符串有多少一个符号空格隔开了。有几个数?这个for循环就循环几次,那我们现在是不是三个数,所以这个for循环会循环三次。第一次循环的时候,把第一个数赋给变量。然后你里边执行你的操作,那我是不是就A口到来,那是不是第一次循环就打一一。第二次循环呢?就把第二个数付给哆来,那我再执行这个命令,是不是就大于二,第三次循环把它付给哆来,这样的话是不是就大于三,对吧?那其实这条这个循环的作用就是循环三次,然后一次打印1233个数。各位为啥说这个循环好?二原因我们学员就问老师,那要循环100次怎么办?我后面是不是就得写100个数。那要循环1000次的,这事是不是就差了?各位你也不要着急,我们Linux其实是支持传统语言当中的传统循环,等我们后面真正讲循环的时候,我们再来详细说,这种循环它是有特定道理,他在写我们12脚本,或者说写这种系统管理类脚本当中,这样的循环反而更方便,诶不信我们后面讲,你暂时就先看懂就行了,好了,那我们先执行一下这个放循环啊,我们这个放循环,这个放循环不需要在脚本里面传参了,它里边因为参数都写好了,对吧,你看它就是这样简单的。
07:30
循环1234对吧,好了知道了这个,我们来看看这个家伙的作用,好了,那我们来看看啊各位。我们VI一个PARENT2脚本。好,我们来写参数脚本,我们也还是放。I in,然后呢,到。行。各位,然后度。各位,这个度和当有点类似于我们的大括号,哎,就照着写就行,这是正括号,这是反括号,哎,我们上面不用括号,我们就直接挨扣倒来。
08:12
来两个脚本,写的是完全一样的for y,只是里边的值不一样,一个是Dollar星,一个是。一个是把整体,把它看成整体,一个是把里面的参数区分对待来,然后呢,我们录。今儿的这个字打的很不痛快啊,再扣到了Y。小心,这个变量里的值是Y,这是I,这两个值变量名不能一样,否则是不是就覆盖了,那好啊,我们先就是想想干嘛,后面是不是有有多少值,之前说的是不是后面有多少值,是不是循环多少次,我在这里输出一行分界分隔符啊,要不然待会儿看起来时候不痛快。输入一行分隔符。
09:00
好。行了,那我们执行一下。它的作用都是什么,把参数是不是放在这里。有多少个参数,是不是循环多少次,每次循环是不是把参数打出来,这两个作用是不是就是一样的,好了,那我保存称之MODE755给PAR这个二来付权执行权限,然后我们执行他一下。2112233444个参数,我们来看一下。第一个循环。我清下屏,从来就这样。我们看一下把它输出来,第一个循环只循环了一次。他把这四个值当成一个整体直接附在了刀勒星里,也就是说这个时候如果用刀勒星for后,认为后面只有一个数1123344是同一个数,所以这个循环只循环一次,同时在循环的时候把这个数所有的数都附载到了这个变量I里,所以它只循环了一次,但是一次循环到了里包含了它的所有的参数值。
10:05
而Dollar at呢?它的作用就是把这个数分别。存到了到来当中,所以这个循环当中,这个Y后面他认为有四个数1122,这是分开的四个数。那我们说了,我们的循环是有一个数是循环一次,每次循环是把这个值负进来,所以第二个循环循环了四次。看懂了,区别就在这儿啊,第一个循环只循环了一次,因为不论你有多少个参数,在do星看来,它就是一个整体,就一个数。所以只循环一次,只是这次循环把所有的参数都附进来。而。到呢是每个参数它认为是单独的一个数字,所以有四个数,它就会循环四次,每次循环输出这个值,这个脚本能说明它俩的作用。看到了刀的星和刀的作用。
11:00
各位有用吗?还是这句话。用不用再移,我们前面把这些东西都告诉你,后面我就说了,好了,我讲明白了,然后我就告诉你我需要完成一个什么功能,比如说你给我添加100个用户。好,你告诉我你要什么钱?你来想挣钱,当然我说用100个用户这个数,这个两个变量有可能用不着,但是我就说你要知道有这个东西,然后呢,在我们这个写脚本的时候,你才能想起来他。如果你要能想起来,你的脚本就会变得极其简单,如果你要想不起来,完全要靠脚本来实现,比如说我把它一个一个导入到刀了一,刀二,刀了三里面,再去串,再去再再去,这个这个这个判断,这就有问题了,你怎么知道我这里只输四个参数,我要输五个,你怎么办?你里边写几个,你DO1 do2 do3,你写几个?你说你写五个,那我有六个怎么办?哎,那这个时候是不是用它来接收的话,是不是就可以不用考虑我是多少个参数的个数,有多少个参数,是不是都持心电。
12:05
对吧,所以用不用占。我们说编程啊,为什么说编程思想很难兼得,我们学员在一开始接触的时候都有这种感觉,不光是12教本学其他的脚本,其他的脚本可能还好点啊,因为其他的脚本。啊,其实都差不多,因为我们说最大的问题就是什么,我告诉你的这个东西,你会觉得这个东西应该在什么地方用,你想不想来,或者说你觉得没用。那这个我们现在现讲的东西太少。以至于我们没有办法写一个常规的或者正常的脚本,我们就只能干嘛先通过这种数字的方式来举例各位,这种数字脚本看起来好像没有实际工作价值,但是它最大的好处就是这种逻辑运算的时候,它看起来更清晰,一眼就能看懂。OK,我们后面啊,当我们具备稍微具备一点能力的时候,我们就会尽量不再写这种脚本,我们就尽量写什么跟实际工作相关的脚本,这样慢慢能好一点,好各位。
13:09
这就是这俩参数的作用,废话不多说了,你现在要做的事儿,先把我写的例子照着写,争争取能够不看默写出来,然后呢,把这玩意儿给我牢牢背下来,后面我们用到的时候,慢慢就会理解他是干什么的。行了。位置参数变量就这几个,那这几个位置参数变量,其实第一组还是非常常见的,后面这两个,哎,其实看你怎么用吧,只要用都还是很常见的,这些最少你要都要把名字背下来,再有一个我提醒你。去面试的时候,如果有笔试的话。一般考试二编程都会问你这东西是什么?原因,出题的人不能动脑子,你还不一定背得下来,所以在笔试题当中,这些东西的出现的几率极高。那如果出这么简单的就是硬概念的东西,你还不会说不过去啊,OK。
14:05
好了,各位,这节课的内容就是这样,我们下节课再见。
我来说两句