00:00
表达式的各种符号啊,那这呢有一个小练习呢,就是来利用这个算式运算,那这边有一个。古代的数学题,古代的数学题啊,上千年了,已经这个,这是这个叫鸡兔同笼,鸡兔同笼,这个鸡兔同笼呢,说的是一个中国古代有一个叫孙子的啊,这个孙子不是兵法孙子啊。是孙子算经。里面提到的一个计算公式啊,还是小学是吧,这算是归大小学里鸡兔同笼,那说的就是什么呢?说的就是,哎,这是原文啊,这个原文大家能看懂吗?这个说金有鸡和兔放在一个笼子里,那总共有35个头,下面呢有94只脚啊,问你说鸡有几只,兔子有几只啊这个意思,那这个计算呢,实际上现在的计算估计大家都应该有这样的一个想法,可能就用所谓的二元一次方程是吧?啊,比方说我们假设积积积,给它起个变量叫X。
01:31
哎,那兔子呢,起变量叫Y,然后按照刚才的算法呢,就是有35个头,那就是鸡一个头,这个兔子一个头加起来是不是35个是吧?然后脚啊,鸡呢,有几只脚呢?两只脚对吧,兔子四只脚啊,所以我们加起来是不是94,这是二元一次方程就算就行了。
02:02
算完了以后,最终就有结果了,当然孙子玄经那是上千年前的事了,那个时候没有这种技术啊,所以当初对于这个题呢。啊,这个古人是怎么算的呢?啊,古人是以抬脚方式来计算的啊,现在都是举手,那时候抬脚是吧,那怎么抬脚呢,这样鸡鸡的话呢,一般来讲这个可能是昂首挺胸啊,所以我这个呢,简单画一下啊,简单画一下。这么来画啊,呃,我用这个方的。这是鸡,呃,兔子呢一般趴着比较多,兔子,然后鸡呢有两只脚,所以这两只脚兔子呢有四只脚,对吧?啊,那第一步我们怎么让他们算出来呢?是这样的,总共。
03:10
脚有四十九十四只。这是总数。现在我命令所有的动物都抬出,抬起,比方说抬出一只脚来。那抬起一只脚来,哎,这个脚上天了是吧?哎,那上天了,那这个是不是就没有这个脚了,那这个对于鸡来讲是不是就少了一只脚啊,然后这个兔子我也是让他们抬出一只脚来,抬出一只脚来是不是也我们就意味着每个动物都少了一只脚,那么少的角是不是就是跟我们动物的数量是一样的,那是不是也就是减35,是不是就是剩下就是在地上的角是吧?这算下来是多少?是59吧,59算下来的是59,也就是地上落的还有五十九十角,好,第二次我再次命令,再把最后的每个人,就是最后再抬一只脚下来。
04:15
起来,那就是我们是不是呀,这这这咋回事啊,那这个鸡是不是就没有地上的角了,而兔子还剩下两只脚是吧?那么也就意味着我们再减上35是不是,那再减去35,剩下的是24,那剩下的24是不是都是兔子身上的脚,那这个24我们说一个兔子现在只有一个兔子对应两只脚。那所以24是20脚,那是不是剩下的兔子有几只啊?除二是不是就12个兔子就算出来了,那同样道理,那35减12剩下的是不是就是我们鸡的数量,明白了吧?那是不是剩下的就是23个223只鸡对不对?哎,这就是古人的算法,当然古人算法可能还有别的算法啊,比方说我们命令先抬起一半脚来。
05:16
啊,这回不是抬一只脚了啊,抬一半脚。那抬完一半脚,比方说原来这是两只脚,这边是四只脚,那我们各抬一半脚,各抬一半,那九都抬了一半,那是不是就是除以二对吧,那各抬一半,这边抬了一只半一半,这边抬了一半是两只,那地上的是不是各有这个有一只,这个有两只,就这样的状态了,那这个上算下来是多少呢?算下来是47是吧,就地上角还有47只,然后我们接着再命令它抬一只脚。每个人都抬一只脚,每个人再抬一只脚,那抬完一只脚以后,剩下的,那是不是只剩下的12只脚,剩下的12只脚是不是都是我们兔子身上的脚了,因为鸡已经没有脚了,它已经坐地上了,那这个12个角都是兔子上的角,而且这个12个角和兔子数量是一样的。
06:21
所以就得到了兔子的数量,那同样的35再减12就算来了。是吧,嗯,这宇说鸡受不了了,那你能受得了吗?好,那这就是计算方法,所以呢,我们现在,哎,这有一个小的数学的计算公式啊,这公式呢,那我们是这样写的,我把这个头。和负做成一个变量,分别用到一到二来进行赋值,那并且rabbit和cook这是两个变量,这个两个变量分别表示兔子和鸡,Rabbit是兔子,Cook是鸡。
07:03
那这个。兔子的数量怎么算的呢?说了就是脚的数量减去头的数量,那这不就各抬一个吗?然后再抬头再减一次,那就是各各自都减了,就每次都是抬一只脚,抬一只脚,抬两只脚,然后除二,是不是就算出它那个子的数量了,对吧?然后呢,鸡的数量不就是把害减成这个兔子数量给算出来了,算出来以后呢,得到一个结果啊,最终呢,我们输入比方说十,当然不一定输入那个三十五九十啊,你可以输某个值,输完某个值以后一算就算出这个结果来了,那这个呢,我们可以来。实现一下看看。啊,我就不写了啊啊来这个放在这里面啊,起个名字叫book。Rabbit。好,大家看这里面用到了数学计算,那这个数学计算你看用的是DOLLAR2个小括号,哎,那当然两两个小括号呢,这里面你看就是有数学计算,它要先算,算完了以后再除上,所以这个里面还得再敲括一个小括号,当然你也可以用中文号啊,实际上也可以用let命令也可以,所以这个算术运算有多种格式都可以,哎,那么现在我们有了这样的写法以后,那现在我们就可以传了,那按照刚才的计算公式,第一个呢,应该是传的什么什么头数量还是鸡脚的数量啊。
08:33
啊,第一个传的是啊,害的是到一该是头嘛,头的数量,那头的数量呢,我们现在就可以啊,加一个执行权限吧。好头是35,角是94。就算来了。看到没有,当然,那你有了这个公式以后,将来想传什么都可以,比方说头是20个,脚啊是40个,30个吧。
09:05
呀,这不对了,至少得两倍以上吧,因为每个动物至少得两两个角是吧,所以这个数量一定是两倍以上,所以这个四十四十也不对,40会导致一个兔子都没有,是不是全是鸡啊,全是鸡是不是多加点。没错吧,这不就算出来了吧,你看这个小的数学公式啊,那当然这个小练习呢,你看是用到了算术运算啊,算数算是,哎,这就是一个算术的一个小小内容啊,当然我们还有。啊,还有就是逻辑运算。逻辑运算就是与和或与或非啊,与或非,那与或非呢,这个我们用的也非常多啊啊,那一般来讲,我们认为一是真注意是二进制的一啊,二进制的一,而且这个地方的一不要和我们之前讲的到问号的值混在一起,到问号它返回的是零到250度之间,那是个实际值数字。
10:14
所以这个地方说的零和一是二进制,所以这说的一表示真,这说的零表示假,你要是混在一起的话,你看前面那个到括号零表示它是真对不对,成功是吧,所以别混了啊。然后这个与与呢,是用an的符号。啊,这个也是二进制的,就是我们刚才曾经提到过的啊,或就是竖竖线,竖线,还有非非是取反,非是取反,那这个呢,我们可以用这个命令来取真和取反,咱们有一个命令,直接就是返回真和假的,那个命令呢,就是处处,这个命令呢,它本身是一个内置命令,那这个命令它的功能就是直接返回一个成功结果,也就是针啊真好,诶你看那它结果是不是真呢。
11:10
那还有一个是为甲的叫false,这个false呢,和负正好相反,那它作用是干嘛的呢?作用就是永远返回假,你看到没有unsuccessful,而刚才是succesful,总是返回真,总是返回假是吧?一个总是真,一个总是假啊,那真的总是真,但是我也可以变成假的,怎么变成假呢?取反号叹号取反,这时候就变假了啊,那我们来看看它甲甲了吗?假了啊,注意这个地方的一表示的是失败嘛,是吧?啊,这是实际日了,这表示失败非零就是失败,零是本是成功嘛。所以这个就假了嘛,啊,当然你的话呢,这也是假。啊,当然,你要是叹号false是不是就变成真了?
12:03
明白吧,哎,所以这就是取反啊,取反它也是可以实现的。那另外呢,我们前面呢,给大家说过这个,呃,数字的比较,数字的比较。啊,比方说一大于十嘛,啊,大于零吗?一大于零吗?啊,当然这个应该返回的就是真。对不对,哎,一大于零,但是我们这是不是可以去反呢。取反,取反了以后,你看是不是就取了反对吧,取了反。啊,所以它这个地方是可以来取反的啊,当然这个叹号我我放在外面行不行,放在外面再看。是不是也可以啊,那它这个取反呢,实际上可以在地方很多地方可以来设啊。
13:05
还有就是这个抑或这个抑或呢,有一个特点啊。就是我们拿两个数字来抑或。这个抑或呢,嗯,可以用什么符号来表示呢?就是脱字符,脱字符就是抑或,那这个抑或呢,我们有的时候用它一个特性,可以实现一些非常有用的功能,比方说这个有一个变量啊,或者直接有个数字吧。这两个数字。这两个数字如果要抑或。它的结果是多少?大家知道怎么算吗?首先先把它转换成二进制。这是不是八的二进制对吧,十的二进制是1010啊,然后我们说要抑或抑或就是对备抑货。对位异或,那我们刚才说过异或的逻辑就是相同为为假啊,不同为真对吧?那所以我们现在看到两个一是相同的,所以结果就是假,假就是零嘛,那零零也是相同的,是不是零,那这个一个一一个零,这是不是应该真呢?那这都是零就是假,所以结果就是这个,这个结果是几啊二对吧?二,那也就是说我们现在通过这种方式就算出来二了。
14:28
那当我们可以怎么知道呢,这个结果呢,我们可以通过这个方法来算一下八和呃出字符十,你看你算算是不是啊。没错吧,当然这个符号呢,你可以换别的符号,这也不是说必须用这个符号,你也可以用别的符号啊,你也可以用一些其他的方法啊,都可以好了,那那那我们知道怎么去异货了,那现在这个抑或呢,有一个特点呢,就是这样的啊,我们现在八和十预会出来就是二,那现在我随便拿这个二和八和十分别再来预会一次。
15:11
假如说我们和10亿和一下吧,如果和10亿或的话,得到结果大家看是几呢?这应该是1000,哎,这个恰恰就是8A对不对,恰恰就是8A啊,那那我们拿这个二。和八区一货呢。这是不是1010是不是恰恰就是十呀,这个我们就有意思了,那是不是就是我们现在得出了一个公式,就是X和Y异或得出一个Z,那这时候这个Z和任何数异或将得到另外一个数字,是不是这个逻辑啊,就这三个数字啊,他们彼此之间可以互换,相当于也就是说你知道任何两个数都可以得到,再返回来算出原来的数字来,哎。
16:10
所以这个公式呢,而且还又异或这个算法都不变,还是异或它和加法不一样,加法的话,你比方说X加Y,哎加Y等于Z,你这个你拿到Z,你要算是不是不是加法了,是减法,减法了是不是你得减法了,而这边呢,它还是一或那个算法都没变是不是,所以这个是非常有意思的一个特点。那么利用这个特点呢,我们就实现了一个功能,就是可以实现变量的互换啊,比方说现在X是随便写一个110 Y是一个19119 Y是119这两个什么19119119,然后我们想把X变成119 Y变成110。
17:02
想互换一下,以前很多人都这么做,找个临时变量,然后先把X先存进去,然后X不是就有地放了吗?然后再把X用Y给它负一下,这样的话是不是X它的值就变成了Y的值对吧?那Y的值再等于什么,再等于TB值,这样的话呢,X是不是就有了,和Y的值就互换了呀?啊,Y的值就互换了,你看他俩是不是就互换了,但这种方法我们得不用一个第三方变量嘛。这个变量实际上用完了也就没用了,你要把它可以把它删掉啊,因为它是临时用的。所以这样的话呢,这个用起来不是效率很高了,那我们可以这么做,就是我们刚才说的这个抑或方法。
18:01
怎么做呢?那我们可以这样做,抑或啊,Let,抑或,抑或谁呢?就是X等于X和Y异步。X抑或Y,大家想我这么或再付给X,那这个X是不是存的就是他们的中间第三者那个数字对吧?然后同样的这个命令我再执行一次。再执行一次的话,那这个时候这个X的值存的是什么啊?哎,所以我现在现在那这个是不是又回去了呀,所以我们这边呢,把这个变成Y是吧,变成Y,那变成Y的话呢,你现在我们做完以后,X已经变成中间值了,中间值和Y负值是不是实际上就是X原来的X负给YY,这不就得它的新值了吗?对吧?然后接着再把刚才说的这个公式再算号。
19:10
这样的话呢,我们这个X存的是第三方值,而Y存的是原来的旧X值,所以旧X值和第三方之一或不就得到Y了吗?再负给X,这样的话呢,彼此就实现了互换,那我们来看一下是不是互换了。你看互换了没?是不是X变成了110 Y等于了啊,啊,这个FX是变成了110是吧,Y变成了119啊,119Y等于幺零,看到吧,互换了吧,互换了啊,所以这就是实现了一个变量的互换,所以你看我们根本就用不到第三方变量就能做到很巧妙的一个。
20:00
算法啊,好了,这是刚才给大家说的啊,另外呢,我们这边还有一个叫所谓的所谓的短路运算,这个短路运算它的功能是什么呢?短路运算说的是当我们直接观看去与货的时候,这个与的逻辑呢,就是如果有一个数字。啊,为零结果就是零嘛,那如果大家都为幺,结果才是幺,是不是这是雨,那这个短路语是说的是什么呢?短路语是这个意思,短路语前面有一个命令,后面有个命令,哎,那我们都知道语的逻辑呢,就是如果大家都为一,都为一一是条就真的意思了,那如果都为一,结果才是真,那但是大家想过没有,如果第一个命令执行完了以后,它已经是假了,也就是说已经是非零啊,就是不是不是真了,已经是零了,那这时候我们这个命令的执行结果影响不影响整个结果,我们说了,只要有一个为零是不是结果就是。
21:08
假了对吧?所以如果这个命令结果为假,我还有必要执行它吗?呃,实际上执行不执行也不影响结果了呀,白执执行也白执行,浪费,所以既然浪费了,得了,我们就短任务,所以短路语就不执行了。如果它为真,要不要执行它,要因为你不执行,不知道它最终真假啊,真就是一的意思,真就是一,所以如果这个为真,我还是要执行它了,那如果它为假,就不执行它了,大家想最终就实现了这样一个功能。那这个是不是用这种方式就简单的实现了一个所谓的逻辑上的一个处理啊,那我们用这种方式就实现了一个简单的逻辑处理。
22:01
那个网站叫啥来着是吧,这个名字吗。嗯,在线。画图吧,我那个那个页面没存。这个这个。我那个有QQ还没登,还得扫二维码。
23:04
好,那这边呢,我们看一下它这个有一些这个逻辑运算的处理啊看一下。哎,这个图这个三角符号一般就表示逻辑上的这样的一个判断啊,那我现在就可以这样写了,这是第一个命令cm de1啊,那我们现在呢,是这样的一个情况啊,CF de在后面加上一个所谓的短路语,短路语呢是用两个符号at来表示,这样如果CMD1加上一个两个F符号CMD2,这个叫短路语。那这个短路语最终实现的一个效果呢?就是命令一如果为真。
24:00
啊,这个中间的结果是真。真啊,那就处了啊,如果命令一执行为真,那我就需要执行命令二,哎,那我就要执行命令二。这行啊。那如果命令一是甲,那就后面就不执行命令二了啊,不执行命令二,那假设这个命令的后面呢,还有下面一个命令,就命令三。这是两个不同的命令,那么这时候他自然就会执行命令三去。他跳过。明显逻辑了吧,哎,当然这个命令二执行完了,他该怎么办?命令二执行完了,不论成功失败都要怎么样,正常情况都要执行运营。
25:06
是不是这个逻辑啊,我这没有加条件啊,就是命令二管理成功失败,反正我接着把它执行就行了啊,当然也有一些个别,就是我们比方说加了那个脚本安全以后,它一旦出错它就退出了,对吧?哎,我们说这是没有加那个安全脚本的情安全设置的情况下,它实现了这样的功能啊,这就是短路语,短路语呢,最终就实现了一个条件判断。啊,那是不是就根据命令一的状态来决定到底执行不执行命令二是吧?啊,实际上呢,我们现在如果这样画图的话,它可以再简化一点,我们是不是就可以把它转换成这个形式了。直接拉过来就行了。这是不是就变成这个样子了是吧,那实际上到最后呢,我们就根据命令一的结果来决定是否执行密量是吧。
26:01
那将来我们用这种方式就可以实现条件的判断了啊,那有短路语。就有短路货啊。短路或,它的写法是两个竖线。短路或是两个竖线啊,这两个竖线呢,它可以来实现这个短路或的逻辑,短路或的逻辑呢,跟我们刚才画的这个图啊,呃,有点像吧。或的情况是什么意思?我把它放到下面来,放到这儿来。嗯。啊,那么短路或它是用两个竖线来表示。
27:02
货的逻辑呢,就是只要有一个针,结果就是真记得吧,啊,所以我们还是这个图啊,那如果我们。啊,那逻辑上的或说的就是命令一如果成功,大家想或的关系,只要有一个成功,它就后面,那就不用算了,都可以成功了,所以呢,就意味着如果为真,后面还是有必要执行它吗?那没有必要执行了啊,那就是如果为甲,有没有必要执行啊?哎,如果为甲,我得判断一下命令二,我才能知道它到底整体上是成功失败对不对,所以它为假就执行,那如果为真,是不是反而就不需要执行命令二了,是不是就跳过了啊,跳过了,所以这就是它背后的逻辑,哎,那命令一执不行,执行不执行命令命令二,那就看你的这个状态的执行结果是否为真还是为假了。
28:20
所以我们有了这样的一个方式呢,最终就实现了一个将来的简单的一个逻辑逻辑处理,哎。所以这就是我们未未来将来要用它处理逻辑性的一个写法啊,那接下来我们看一下这边。怎么去用这些逻辑的判断呢?刚才我们看到了它的逻辑处理呢,有多种啊,比方说我们可以通过数字的比较啊,谁大谁小啊,或者是真假呀这些,那在咱们的C编程中有一个这样的一个条件测试的专门的命令,这个命令呢叫test的指令。一个T的指令呢,它是一个内部命令,它可以来判断一个。
29:10
最终表达式决定的最终真假,那这个结果返回的值要么零零表示真,一表示假,那么后面的这个表达式可以写很多东西啊,比方说我们写写一个最简容易理解的就是字符串的判断。在字符串判断里面,比方说VV后面跟个字符串,它判断就是这个字符串是不是一个空串,如果是空串就是真,如果不空就是假啊,所以我们可以这么来写,比方说我们这就一个内幕。马哥。内有值,然后我们现在就可以用。Test the Dollar name。
30:01
那它的作用就是判断内蒙是不是空,空就是真,不空就是假啊,所以我们现在看一下这个结果,按照我们现在目前的状态,应该是真假。啊,这样讲甲,那甲的话,返回的结果应该是一是吧。这个嘛Z嘛,这个是判断这个字符串是不是空的,空才是返回真的啊,那这个人家不空啊是吧,不空啊,那现在我把这个变量给他删了。或者呢,我我把这个变量先删了啊,删了以后再执行一下,它空的,这时候这个变量是不是就是空的啊空了。看明白了吧,那当然,我现在请大家思考问题,如果内蒙它是一个空串。
31:07
那请问它的结果是什么?就是就是个空字符串啊,这个是真还是假。那他确实是空嘛,空就是真嘛。对不对,哎,都就直接读啊,这是这样的一个判断,这样可以了,好还有就是N后面根字符串,或者直接写字符串,这两个是等价的,它判断的和刚才正好相反。下个就是不空就是真,那不空就是真,那比方说我们现在它是内蒙啊,等于王,然后再去判断一下,这应该是真假,那这个杠N加不加都行啊,你不加,因为它俩是等价的,你看这个写法呢,我们这个地方N写也行,不写也行,直接后面分出个串啊,那这个结果是什么?
32:13
这因为王非空嘛,非空就是真嘛,对不对,哎,那当然我们现在要把王内部的这个变量又复成空圈了,那这个是真假。对吧,这不就假了吗?他可以判断一个字符串是不是为空啊,为空啊,那另外呢,我们还可以比较两个字符串是否相同或者不同,这个用的比较多,那比方说我们这儿有一个这个字符串啊,这叫就叫内一,内幕一是马哥啊内二是往这两个字符串是不是相同呢?哎,那我们就可以用这种方式来比内一。
33:09
等号,所以这个等号呢,前后不能带空格啊,因为带了空格那就成了负值了啊,不到不加等不加空格就是前后有空格啊,前后有空格啊,说的一定是有空格的啊,不加空格就成了负值了啊好,然后呢,我们现在比一下。圆了以后,这两个结果应该不一样吧,不一样是不是应该结果为甲呀,啊结果为甲,所以我们来看。甲吧,那当然,那现在如果我们把它的值故意改成一样,比方说把这也改成马格了。你再比再看看了吗?是不是就是相同的了,因为真了啊,哎,这就是当然你这也可以比较不同叹号等号,这就是不同啊,这个是比较它那个排序的,就是谁在前谁在后啊,这个用的不多了。
34:10
好了,这是刚才我们给大家说的这样的一个字符串的比较,当然字符串比较呢,我们用的相对来讲啊。是比较多的,就是判断它是不是空啊,是不是相同啊,这个用的比较多,还有就是算术运算,算术运算呢,它这也支持,不过这个算术运算它比较特殊,特殊在于它的这个算术运算的四符串写法它不太一样,它是用这种算术写法,你看这个算术运算写法呢,是EQEQ表示等于,Ne是不等于啊,LT是小于等于是吧,L是小于或等于是吧,GT大于等于啊,大于,然后G是大于等于啊,所以我们两个数字的话呢,也可以这么去比啊,比方说I等于十勾啊等于20,那现在I和勾谁大谁小,那我们就可以这么来比,就是A,然后注意它这个地方是GTGT表示大于啊,是否大于勾呢?哎,你看看牙。
35:19
这个地方我们这样写有问题了,那这要加Dollar啊,因为你这是数字,你不加Dollar不可以加Dollar,加Dollar以后呢,我们去看看结果啊,假因为A是小的,所以呢,我们把它变成LT就可以了,LT不是小于吗?啊I小于勾吗?应该是真的对不对?哎,这就是可以做数字运算呀,有了这个东西,我们现在配合我们。前面讲的分区利用率最大值大于80就报警,诶我们现在是不是有招了,那我们将来取出分区利用率,看它是不是大于80,我们就拿这个东西一比就比出来了,对不对,这这个就可以实现了。
36:01
这个地方需要注意,就是test的这个写法呀,我们一般还不太用啊,为什么不太用呢?因为有一个和他一样功能的命令啊,这个命令是个内部命令,那事实上呢,它有一个和它功能一样的命令,这个命令呢就是中括号。中括号它的用法看着直接写就行了,大家看中括号它是test的什么意思?这个单词认得不以后还会见到啊,那这个表示他和test啥意思,这个单词同义词吧,啊,就是说它和test是一个意思,就是你写中括号也行,你test也可以啊,啊,但是你单括号是不行的,必须前后都得有中括号是一成对的,成成对的是带名词,所以我们现在就可以把刚才的写法不用这个T词了,那我们可以写成这种中号,但是写中号的时候千万记住了,一定是这有空格的啊,一定是这有空格的啊。
37:22
你要连着写,这是语法错误啊,看到没?一定是这有空格,空格知道吧,这样才行。啊,中括号这个写法,你觉得这个写法好啊,还是test写成这种这种命令的语法你喜欢呀,那你凭着你多年的经验,你觉得好啊,那看你的感觉对不对。那事实上呢,这个中文号是比较推荐的,为什么呢?因为中文号它的这个代码的易读性更强,因为我们一眼看上去它就扎眼,他就别和别的符号不一样,你要写T那个和我们一般的命令混在一起,不容易看的清楚,是不是有没有这种感觉啊,那事实上呢,咱们在系统中确实是有一些脚本啊,就是用的这个符号啊,比方说在。
38:23
在这个渗透七上,渗斗七上呢,有一些初始化脚本啊,这个初始化脚本里面就写了一些文件,这些文件里面,它记录了就是我们初始化的一些命令啊,看看这里面啊。啊,直接在这吧,啊,这里面就有,你看我们方式里面看看有没有中号,你看这是不是中。是吧,这是中国号啊,哎,你看在下面是不是还是中国号。看到没?那你看这是不是还是中括号这东西我们见过了已经啥意思,是不是,就是判断这个变量是不是为空,如果为空就是返回真嘛,那这个是不是不空,是不是这不不空啊啊那当然它这个地方人家推荐是用画括号双引号引起来的啊,就变量呢放在双引号里面。
39:22
变量放到双引号里面啊,虽然不写表面上也没错,但是我们建议大家放到双引号里面啊来实现,哎,你看人家这里面就没有用到test。用到的全是我们刚才看到的啊,这个中括号中号写法啊,希望大家明白啊,当然它俩既然等价,那就可以互换的是吧?哎,这就是它的这个写法啊,那太测写法我们不仅可以比较数字,这边有数字比较。那当然实际上数字比较,我们一般来讲可以不用这个,因为什么呢?因为我们有一个算术写法,这个直接写就行了,那说我们因为我们是不是更喜欢的,还是用这种写法比较习惯。
40:10
是不是你让我写什么Le呀,GE啊什么这些算法感觉别扭,所以我们更多的喜欢用这个I啊I,当然I是多少呢?我看看A是多少啊,没有值没有值,当然那你这个比较肯定就是甲的呗,那没有值啊,没有值。是吧,那现在我们I负个值吧,那I负个值负个十勾负个20,那当然那你一比的话,按照现在这个逻辑肯定是甲啊,对不对,应该是甲啊,那现在我们把这个A的值给它调大调成30啊,那再去比一下,那这应该返回的就是真了吧。那这个应该说更怎么说呢,如果是算术运算,那就还用这种方法比较好。
41:03
是吧,算术运算算术运算用这个小括号括起来,里面可以写直接算数的那个公式,看起来比较方便啊。好,那当然这里面在字符串处理的时候,它这个T的写法里面,刚才我们看到了字符串比较,算术比较。另外呢,他这儿还有一些文件的判断。这个文件判断呢,比方说判断后面跟的这个文件是否存在。然后判断这个文件是不是个块设备文件。字符设备文件是不是个文件夹,你看到没有,是不是存在的文件,这两个实际上应该是等么下的,杠A和杠一是等么价的啊,另外呢,这儿还有一个是不是一个链接文件,那链接文件用杠H和杠L都可以。啊,另外呢,我还可以判断这个文件是不是可可执行。
42:04
是不是可写?是不是可读,是不是读看到没有,所以我们现在就可以用这种方式来判断了啊,比方说这个文件。那这个文件,那我们判断一下它是否可可可可可执行。啊可不可写,那我们判断一下,那怎么判断呢?我们刚才说过就用这个跟上一个什么呢?跟啊X是直行的对吧?哎,我们后面跟上这个文件ETC先,嗯。真假呀?啊,那可可写不真假呀?咋回事?
43:01
你是谁呀?这作用能能起作用吗?这个所以人家看的是实际权限,不是说你表面上的权限,实际能不能写,当然能写了,Root写什么不能写是不是,你把这个文件打开能能写吗?能写啊,能读能写。那这这这是可以改的啊,这是可以改的,能读也能写,所以他千万不要被表面上的权限给啊混淆了啊,他看的实际权限。当然他能不能执行啊,这个能执行啊,这个这是一个命令能执行,他不一个命令是不是也没加执行权限呀,但是你加入执权限,他能执行不,你加上他能执行吗?虽然你加了执行权,因为他文本的内容不符合脚本的要求啊,脚本脚本要执行是不是审判机制啊,所以你这个执行它会报各种错。
44:13
对吧,各种思不过呢,从判断权限这个角度来讲,他有没有执行权限啊,哎,那你看看他有没有权限啊。啊,它是有的,虽然他中间报了错,但是确实有执行权限嘛,是不是,哎,这就是他背后的逻辑啊,啊,那我把这个权限在取消啊,这是咱们文件的判断权限。好,这是刚才给大家讲的这些,那实际上呢,我们这两种写法,由于是等价的,它俩功能一样。我们还有一个非常非常非常重要的括号,就是双中括号,这个双中括号它和这两个就不一样了,双中括号它的用法怎么用呢?我们刚才好像看到过,应该加转E对吧?双中括号,双中的括号它里面也是写表达式。
45:19
这个表达式它强大在于哪呢?大家看啊,也可以认为这个双中号就是增强版的。单中号增强版。甚至有人建议,干脆有了双中括号就不要用单中括号和T了,因为它增强版我功能更强啊,你那些有的我也都能用,你那用的我都能用啊,所以大家看这里面呢啊,有一个这样的一个呃状态的说明啊,看看啊他这呃你看这有他说这个表达式呢根。T的写法是相同的,发现了吗?也就是说里面的表达式呢?跟T一样,除此之外,它还支持以下的什么括号?也就是说它是不是在T的基础之上又加了一些新特性?
46:13
所以我们为什么说这个双中括号是增强版的单中括号,增强版的派索功能啊,那增强了什么呢?它增强了以下这些特性,比方说它可以里面写这种小括号孟出啊,它可以可以写叹号,那这个小括号呢,就是把一组表达式把它括在一起,叹号就是取反嘛,那另外呢,它还支持这个东西,那就是如果这两个都为真才是真,否则有一个为假就是假。那这是不就是语运算嘛,对吧?啊,当然这个不要和我们刚才说的这个短路语音混在一起啊,它这个实际上是双括号里面的写法,自己的一个写法啊哎。
47:06
然后除此之外,它还支持一个非常强大的就是两个等号的写法,那咱们这个单中号和海尔和T写法里面有没有双中号的写法呀,我们看到这里面有一个。呃,不是双就是等号啊,双等号,那这个一个等号一个等号,这里面没有双双等号吧,没有双等号,那我们这个双中括号里面,它支持双等号,双等号呢,它的用法是干嘛的呢?诶大家看啊,双等号或者是。叹号等号,那叹号等号,我们这也有叹号等号是吧?哎,不过前面呢,人家是双等号,那这个双等号是干嘛的呢?注意它表达的并不是仅仅大家想象的相等的意思,而表达的是什么呢?它表达的是在字符串的right right什么意思?右边可以写模式,看到没有,右边可以写模式,那这个模式什么呢?就是正则表达啊,不是正则达,是啊,这个通配符,通配符。
48:16
啊,通配符,也就是说我们可以在这个双等号的右侧写通配符。哎,比方说我可以加星号。啊,这个它它它支持,也就是说可以做模糊匹配,模糊匹配不是那么精确的写清楚了啊,当然我们也可以写等号波浪图,这个等量波浪图,那么它功能更好了,什么它的右侧支持正则表达式。这个超强。所以可以这样讲啊,双中括号什么时候用呢?我建议大家就是你可以把它把那个单中号彻底忘掉也行,因为它包含了单中号的功能啊,那么另外呢,什么时候重点就必须要用双中号呢?就是哎,你要用到这个正则表达式和这个通配符的时候,哎,你就用这个双纵号就行了,因为单中号它没这功能。
49:15
知道吧,哎,这就是他的一个特性啊,那么这边呢,我们有一些这个案例啊,有一些案例啊,我们可以看一下,这是变量赋值,这个刚才说过了,这是。数值的比较啊,看这个。啊,那。这是比较数字相等啊,数字这是算术表达式啊,这是算术表达式,算术表达式来表示相等啊,不等和大于等于啊,小于等于啊之类的啊,这个这个写法,这是算术表达式,算术表达式可以这样写。算术表达式。啊,然后呢,我们这边。这是字符串的匹配,字符串匹配刚才我们用过这种写法了,不过呢,我们刚才看到了,这有一个非常好的功能啊,这个功能,这个功能就是双中号的特性,双中号的特性里面提到了。
50:11
两个等号,等号波浪弧,那看例子啊,看例子你看这个是单种号,单种号的话我们刚才已经说过了啊,在这先不去看了,看这个。双中号的写法。注意这个地方,如果你直接这么写,这就会有问题了。啊,比方说我们如果去判断一个字符串为空。还是不为空,刚才我们说过一个写法,就是直接变量可以放在里面,然后呢,前面有一个什么Z呀,什么呃N啊,这样的一个选项杠N-V是吧,那你像这个什么也不写,前面什么也不写,就写个内,它等价,等价于啥,是不是等价于这个那个杠N。
51:01
对吧,杠N后面跟Dollar内蒙嘛,对吧,那他说的就是这个变量是不是为空嘛,是吧,如果不为空就是真嘛,对不对啊,然后呢,你看我这是对内幕负了一个变量叫I love,然后呢,对他但是你直接这么写,竟然报了一个错误,这个为什么会错呢?啊你看着啊,这个是容易大家犯的错啊,这个这个是写的时候容易犯错啊,你看我们现在写一下是啊,然后我们如果直接这么写。啊,直接这么写。啊,那我们去看。内幕啊,应该这么写,那这个是不是就是判断这个内膜是不是空啊,对吧,非空就真,那它这个地方实际上这样写,相相当于这少了一个杠温嘛,是吧,想一个杠温啊啊非空非空,那现在肯定非空嘛,飞空应该是真吧,对吧现啊但是现在有这样的问题了。
52:13
这是我对内的一个变量赋值。然后还是不行。出事了。就是就断这咋回事,哎,你这样写实际上就等价怎么写,哎,相当于你就是把它串在一起,相当于这么写,这样写语法是不对的。他就搞不清,因为中号里面是有一定的符号的,你这样写他搞不清你要干嘛了。啊,他认为王是一个用来比较的符号,结果你不是那个符号对不对,所以这句语法错了,所以对这种情况那怎么办呢?哎,引号引起来,那这样的话,我们是不是认为王就是一个完整的字符串,哎,这样的话呢,它就可以来实现了,那你看看。
53:13
是不是,所以这就是为什么强调大家在这里面要用的时候,一定要用双语法引起来啊,咱们在刚才讲这个思作七的时候,你看人家这里面刚才我不是拿了一个脚本吗?拿了个脚本让大家瞅一眼,你看人家写的时候。啊,你看人家写的时候,这里面是不是人家都是带双双引号的,这就是为什么人家双大双引号的。那这里面只要这里面都有双引号用起来。是不是就推荐大家加啊,你不加哪天会给出事是吧?嗯,所以这个建议大家还是要加双引号引起来的啊。
54:00
好,这是刚才我们说到的这个需要大家重视的地方,还有一个呢,就是双重号的用法,双重号用法呢,呃,是这样的。比方说我们这有一个文件名,这个文件名叫t log,我就想判断这个文件名称是不是以log结尾。我现在有一个叫t log。这个菜log,我想判断它fair这个变量是不是以log结尾,那这时候我们就可以用通背弧写法啊,就fair,然后等号什么呢?等号,哎,我们可以用等等等等,这是双中号里的写法,双中号里面写法它支持同配符,所以我们可以怎么写呢?星点log。直接这么写,写完以后呢,我们看一下它的结果是符合不符合。复合啊,当然我们如果把变量改一改,比方说我们这个不是log了,是test了,那你再次判断。
55:03
啊,你看他的结果没问题了吧,可以支持,所以我们有了这个东西以后,将来判断一个文件什么后缀,那是不是很轻松啊。哎,这是通配符啊,通配符用的是通佩服写法啊。当然我们这也可以去反,就是叹号等号,叹号等号就是区反。啊,你不是以log结尾吗?那这个返回结果当然应该就是。真了。是不是因为我现在是以太子结尾,不是结尾是不是啊?好啊,另外呢,我们这个地方,如果我们。文件串里面本身就带有。本身我这里面就有啊,这个星号怎么办?
56:05
啊,什么意思呢,就是我们这里面本身就有一个信号。然后A心。是吧,一。那现在我这个变量里面本身就带星,那我就想判断一下你这里面有没有星,这个怎么判断啊,你这个是不是A心。这个表示的一星和我刚才说的一星是同样的事吗?啊,你看它的返回结果确实真,但它这个意思是那个意思嘛,啊,那我如果我写的是AB,你看再判断它也是真。
57:07
对不对,所以你这个写A心啊,它是把那个心当成通对符了,对不对,那我想问的就是你这里面是不是A心。啊,或者是不是包含星啊,包含星,那这个包含怎么弄啊,哎,那就双引号引起来了。然后前面是A。后面对心看看。结果好,然后呢,我们再把它改成什么呢?AB,然后再看再比一次,再比比。可以比出来了吧,啥意思?我用双引号引起来这个星,那就是真心。明白了吧,啊,那也就意味着我们平时如果这里面没有这个特殊的符号,你写的时候你就想啊,把它表示成通配符,不要加双引号引起来,加双引号引起来它就成了心了,它不是那个通配符的意思了。
58:13
大家听懂了吗?啊,在这个是很容易产生问题的地方啊,这个是。啊啊,那转移行不行,刚才有同学说了转移,我们刚才一直没有用转移是吧,转移。那试试吧,那我们就来转移一下。走一走,看看他返回结果。也可以转移啊,也可以转移,你就把这个符号转移了啊,当然这个转移以后,它表示的是A斜杠什么的吗。我们现在这个文件名叫什么?是AB是吧?AB,那我们是不是也有理由怀疑它就是A,它这个之所以是不是就表示的是A斜杠,对不对啊,所以那我们那那那我们就必须写个斜杠。
59:09
对吧,呃,写个斜杠,然后。再写个B。啊,那再来看一下他符合不符合这个条件啊,那说明啥,那个转移行不行。那你看我们这样转完以后,我们是不是就是A星,当然你这样写的话呢,A后面跟任何信息都可以理论上啊,但是你你这转完一以后,这个星就是星的意思了,就是星的意思了,那你就不行了,那我们现在把它改成啊,直接就是A星啊,直接A星,那你看再比一下,看看它的结果是不是零。可以啊,啊,也可以转移,也可以转移啊,所以这个就是我们刚才做的一些练习啊,那我们把这个练习给它放在这吧。
60:07
呃,放在这儿看看到哪了。啊,我给你贴在这啊,将来下来你们可以自己看一下,这是今天加的啊双珠号和啊通配符,当然这个通配弧呢,你不一定非得用星啊,你可以不可以用问号啊,问号不是通配弧吗?那比方说我就想表示呃,这个这个there啊ABC是不是三个字母,就是三个字母,那三个字符怎么表示呢,问问。是吧,哎,三个字符,那看看它结果怎么样,可以吧,哎可以,那如果我这超了,然说abcd了啊,你这个问问问再比一次不行了吧,所以这个通背符呢,它也是可以在这里面用的啊,都没有问题,都没有问题。
61:23
啊,这是刚才我们给大家说的这样的一个案例啊,案例啊,另外还支持正则表达式。这个正则表达式呢,很有意义啊。这个表达式到现在来讲呢,他觉得比通配符功能更强嘛,是吧,所以我们可以怎么写呢?我可以这么来写啊,比方说我想表示是以这个什么什么结尾啊,什么什么结尾啊,比方说是log结尾,那我们现在就可以换正的表达式写了啊,那怎么写呢?就是Dollar there,然后等号波浪弧,哎,波浪弧,那我们写正能表达式,那怎么表示是以log结尾呢?
62:17
斜杠点斜杠点把点先转移了,因为正则表达式点是有意思的啊,然后log对吧,那那待会我这要不要加到结尾啊。那如果我不加的话,看看他这个结果成功不成功啊,也可以,但是我这样写的话,呃,那它表示的,比方说我万一后面要带东西对不对,他能不能匹配出来啊,那我们来比比看看。这是不是就不对了呀,这成了一个包含log了,对不对,这就成了包含log了啊,所以我们这个地方要加一个。
63:01
结束结束了,当然前面呢,你前面你不加也它也就包含的意思啊,所以我们现在再来看啊,这个比较结果就对上了吧。啊,那当然我现在把这个费尔呢,给它改成真正的log结尾,比方说ABC log,那这个应该是符合要求的,所以我们再来看一下它的结果了解了吗?啊,所以它要把这个完整的,你不加的话,它是包含的意思了啊,所以这个地方需要大家注意啊,这个加Dollar啊加Dollar加Dollar,那接下来我们还有一个问题,就是我怎么判断我的这个数字。这个数字是一个合法的数字,比方说请你输入你的考试成绩,考试成绩我怎么判断你是个合法的考试成绩呢?
64:06
那我们可以用正则表达式把这个数字匹配出来吧,那数字匹配出来,那那那我们的考试成绩假设是零分到100分之间。是吧,那怎么用正能表达式来表示零分到100分之间呢?那Co就是考试成绩了,比方说考了个90分,那这是个合法的,那我怎么判断它是个合法的考试成绩呢?等号波浪符,那怎么写吧,这个正的表达式。数字,数字是零到九几个呀?呃,一一到三个,一到三个,那有可能999了,第一个数字是一,但是它是可有可无是吧?但是这个问号到底是加不加斜线啊,加斜线的表示基本正则表达式。
65:10
不加斜线表示扩展的个表是吧,那它这个用的是扩展的还是基本的呀,扩展的,所以我们就不用加斜线,那后面这个呢,是两个吧,呃,当然也可能是一个啊,比方说考了个零分啊,考了个一分。对不对,那考了个一分,那那这个东西它也可能是一位到两位之间,那一位到两位之间,那怎么办?那至少一位两位是吧,这样就行了,这是不是就是。一位或者两位,哎,一位两位这数字,那我们来比较一下,看看它的结果是不是真真棒啊,那现在我故意的写错了啊,比方说我考个九分。
66:04
九分也符合标记是吧,那这个应该是也是对的呀,怎么又又来了一次。没问题吧,啊,但是你要是比方说199,那这最多100,咱们先看看100能不能成,100能不能成。100看看能不能成,100也行,没问题是吧,哎,但是101这就不对了吧。但这个一这个能匹配出来吗?还真能,真能,你这样写的话,实际上最大他达不了,就是超了100了,都因为这个问号可以,可有没有嘛,所以有的话呢,是不是就有可能超过了,比方说这是一后面再加99999,那最多可以达到199,对不对,100。呀,那这个怎么办。那要是一,那后面就必须是零了是吧?那不就就写个100得了。
67:09
然后哎,这个能不能表示或呀。这个成不成啊对吧,这样来写啊,这样来写,但是我们把它确定一下。行首行尾。能这样写吗?好,我先不要这样写,我们先看着简单一点,哎,这个100现在的值是100,那如果我超了的话,啊,我先超了,假如101啊,啊超了。再比一下,然后再比比,这不对呀。怎么还是符合要求的啊?
68:04
这是不是有些包含的意思,只你包含这个值,它不一定是说是精确匹配的嘛,啊,所以我们怎么做呢?把它精确的写清楚吧,当然这种用正则表达式来表示数字的话,这个是比较麻烦的,你可以直接用数字判断,比方说谁大谁小。比方说你高于十,就是大于大于等于零,小于等于十之内,这是不是直接它就相当于判断出来了,你判断数字的谁大谁小不就行了,那这样的话我们直接就可以判断出来。哎,用数字的计算,所以如果你要想这样做的话,那你可以直接数字判断就行,判断不成立,它自然也就不在那个范围内,对吧?哎,所以这个用正能表达式不是不行啊,就是就是这个实际上写起来并不是很,它更适合于对字串处理。不用字符串处理,你要表示一个范围呢,并不是他他擅长的啊,就是写起来比较啰嗦了。
69:06
那我们这加上一个Dollar,加上Dollar加上兔字符。钱和头,那这样做的话,这个表示的是什么意思啊。前面是100啊,那这个货的关系,他是这个货和这个货的关系了吧。是不是,所以我们要括起来吧。括起来,让他内部去扩。是吧,啊,然后再看一下。101不成立了是吧,那101,那我们现在再改一下啊,比方说我们改成这个,呃超呃是是是符合条件的,比方说十吧,随便写一个十,看看这个满足不满足,满足没有问题,所以这样写是可以的啊,比如说我们写个ABC,这是不是已经不是数字了,不是数字了,那这是不是肯定是不匹配的了啊,不匹配的了。
70:13
对吧。啊,那用这种方式也能做,但是不如数字判断比较方便,那用这种方式就是写正则表达式写法。啊,这是刚才我们写的一个小例子啊。那这里面有没有。啊,那就放在这吧,前面再分一个好了,呃,我这边还有别的例子啊,你看这个就是我们之前是文件的后缀啊,这个是判断这个数字是是是不是数字,如果你要不判断范围的话,那判断数字这个都好说了。
71:03
比方说是不是一个数字,是不是一个正数啊,是不是正数啊,那是不是正数,那就是01234都可以啊,那那那这个简单了,那如果你判断数字,那是不是就很简单了,那我们就怎么做,来个数字不就行了。是不是零到九,然后一个以上就完了吗?不就完了,这不就是数字了吗?对吧?哎,那你在这只要不是数字,它肯定是假的,你看诶怎么怎么也是真了。啊啊,我我这应该先赋值,先赋值再比较是吧,然后再去看前后顺序有问题这就行了。啊,那这种呢,可以判断数字,嗯,那接下来我们在写脚本的时候呢,可能会。
72:00
提示你比方说请你输入啊这个一个数字,请你输入啊某一个警报值,这个警报值呢,应该是数字,所以如果你输入了一个字符串,输错了,那么将来你要判断一下。万一他输的是数非数字,将来你去拿直接数字去进行比较,肯定会报错,你可以第一步先过滤一下它,把这种输入错误的信息先直接过滤掉啊,输错了直接退出,输错了重新重新输。是吧,哎,这样的话就可以让咱们的程序更加强壮啊,因为我们输入的信息。不一定是符合条件的。好。这里面刚才说过了这个写法啊。啊,你看本身这个带星号的话呢,我们要把它用双引号引起来啊,这样来写啊,通背谱写了啊,你像我们之前说的这个IP地址,现在就可以想办法来匹配了,怎么写呀,IP地址怎么去匹配一个合法的IP啊。
73:04
那IP地址呢,它实际上是有一定的要求的,IP地址首先它是用三个点合成了四段,每一段都是一个数字,而这个数字呢,它有一个范围,最大是255,最小是零,也就是零到255之间啊,所以我们将来怎么去用正则表达式把这个零到255之间的所有数字表示出来。这个怎么表示,你直接表示是不好表示的啊,我们可以间接的手段来表示,怎么表示呢?就是先把零到九先表示出来。零到九表示出来或然后。从十到99之间。是吧,然后99之间再获100到199。是吧,然后再货200到249,然后再二百五到250。
74:06
就是把它全和起来,因为你直接没法表示啊,然后把它表示出来,这就是我们最终写出来的这样一个结果啊,这个结果呢,是比较长的啊,因为获了好多次,大家看这就是货,你看这什么意思啊,这是不是一到一到九啊,一到九啊,这个一到九为什么是一到九一到九就因为它这个前面是一个数字,后面呢,这个是零到九第一个数字,你想这是个十位数吧,啊这个这个零开头没啥意义啊,是吧,当然这个实际上零零开头也不是完全,那你要是零开头那两个都是零。也可能哎啊,所以它这个把这个零给去了啊,当然这个实际上你在匹配的时候,这个是表示一到九,就是十位数,十位数,那十位数呢,就是一到九开头,那么就是十到99开头,当然这个东西可以有也可以没有,没有的话呢,是不是就直接就是个数字零到九,对吧,如果有,那是不是就是10开头到99,所以这两个两个连起来,实际上就表示了零到99。
75:17
是不是,然后这个呢,表示的就是一是固定的,然后零到九两个固定,那是不是就是100到199之间,对吧?然后这个2042092是固定的零和四,那就是零到40,然后零九,那是不是就是200到249之间对不对,那这是不是就是二百五到250。啊,然后呢,这个串起来,你看全是货或或或全是或起来以后,是不是就表示出来零到255这个数字,那么或完了以后呢,我们再加上一个点,是不是就凑成了一个数字点这样的一个组合,然后呢,再来三次。
76:00
三次完了成了什么了,不就是数字点数字点数字点吗?啊,然后再加最后一个数字串起来,是不是就形成了一个完整的IP地址,所以我们用这种方式就可以判断你输入的是个合法的IP嘛,对吧,合法IP,那将来我们用这种方式呢,可以判断它是否合法。是吧,哎,所以这个将来也是很有用的啊,将来你们,呃,输入脚本的时候写脚本,你要判断这个地址对不对,哎,你就可以用这种很简单的方法来实现了啊好,这是我们正则表达式啊。啊,当然我们在前面呢,它也支持算术运算啊,这个算术运算呢,呃,它也都支持刚才说的那个数值的比较啊,就像你也可以直接拿这个数字这么比谁大谁小啊,另外呢,我们这儿也支持两个小括号的比较,所以这个实际上更简单啊,直接就可以比数字谁大谁小啊,这不更方便吗?啊,比方说我就想判断你这个数字是不是100分以内。
77:07
那我就可以直接拿这个来比,嗯,那你这个成绩是不是100分一合法的,合合法的是吧,假如说90分是不是合法的,那我就直接这么比就行了,我也不用那个什么正能表达式了啊,我就stop这个Dollar加不加都行啊,比方说它是不是大于啊零啊大于零,呃,大于零。啊,你看看大于大于大于零大于啊,那是不是小于100。是吧,那当然,如果我这输的都不是一个数字,比方说ABC书写的,那你这个比较的话肯定就不是真,哎哟,怎么回事?怎么比较出来,既然是零啊。
78:03
你是ABC,然后这个是小于100马。黑色60。那结果既然是一个针,既然是个针,那既然是个针,那这个判断有问题了呀。啊,我这写的是是吧,ABC,然后呢,当然如果我这直接写了abcd对吧,直接abcd,你看这这这这个比较有问题啊。比较有问题啊啊,那我们这写个200。它这个比较有没有问题,哎,这个数字纯数字能比出来。是吧,那如果说里面直接带了字符串。发现他这个比比较结果是不对的。字符串怎么能和数字直接比呢,对吧?哎,所以它什么意思呢?它这个意思,它是把这个东西当成一个变量了。
79:10
他把ABC当成变量来比了,哎,他认为ABC是个变量,哎,ABC变量零,那AB变量有值吧,ABC没值零零是不是就称为是垂,所以这个东西你要这样做的话,看来还有点问题,就是呃,你负的这个值它不确定到底是什么东西啊,它不能排除字符串的问题。所以这个用这种方式比的话,前期可能还得再过一下。过一下率,就是你判断它必须是数字在才参与比较,你不是数字直接比它这个命令还比不出来是不是啊,所以我们将来正能表达式那个写法还是可以用的啊,先过滤一下,至少保证它输入的东西是符合要求的,再参与比较啊,否则呢,将来比出的结果也是有问题的。
80:00
啊,那这是我们刚才说的字符串的这样的一个操作啊,另外呢,文件的测试,文件的测试呢,这个我们用的也非常多了,比方说杠A呀,杠X呀,这是我们刚才说过的,尤其比较我去有的时候会去做一下判断,说这个文件夹是不是存在呀,比方说我们将来要安装数据库,这个数据库存在不存在这个文件夹啊,如果有那就别建了,那就我说明我这个机器上有数据库了,就别装了啊,所以我们现在就可以拿这种方法来判断啊,大家看现在的结果有个啊Dollar,那现在看,那那那说明这个文夹不存在的,对吧,那现在我们判断一下这个文件夹,这个文夹肯定是有的,所以在这时候呢,结果就是零是吧,那将来我们是不是就可以再结合我们比方说短路语啊,短库呀,如果这个文件夹不存在呢,我们就建起来。是不是就可以做了,哎,这样的话呢,我们进一步的就可以对文件状态进行判断啊,然后去做一些事情了啊这些啊,这还有个软连接的判断杠,大L啊大L呢,比方说B呢,这是个软连接,大家看B是个软链接,我怎么判断B是不是个软链接呢?小L小H和大L都是可以的。
81:24
你看能判断出来对吧,但是你要是判断一个别的,比方说它不是一个软链接啊,你像这个ETC,它不是个软链接,这个你看就B0了是吧。所以这些呢都是可以判断的,当然我们刚才也说了,这个你可以用双重号,因为我们说双重号呢,实际上是比这个单重号功能要更强大,是增强版的,所以我们能用中括号的地方都可以用双重括号啊,都可以用双工。所以也有一些这个人说了,干脆单中号就别用了,你用双中号得了啊,不过我觉得是这样的,我觉得单中号简单呀,你写双中号,这这不还得多写点符号吗?而且大部分场景一般我们不一定都用到正则表达式和那个通位符吗?那如果都没用到啊,你只是简单做一下比较,那何必在双众号呢啊,你像人家官方的这个文档里,人家是不是都用的是单众号对不对,人家没有用到啊,没有用到那就他就没加啊,没加,当然它也有地方是会用到双工号的啊,这个官方的那个文档里面有一个那个初始化脚本,这个可以看一眼啊,初始化脚本数化脚本里面它是有的。
82:43
啊,我这边有没有那个六的老版本,六个老版本里面还有啊,我把这个起来。
83:20
好,那我现在去连一下这个六,这个六版本里面,它有一个猪爪脚本是官方提供的啊,那它里面呢,就写了一些比较复杂的这个条件判断,我们可以作为一个学习范例。好看一下。在这CDcc.dc.C你看这里面它有没有双中号的写法,你往上翻翻啊,现在前面是单括号的,哎,你看看有没有双公众号的写法。
84:04
有了,那这显而易见,这个是不是就是同配符了,是不是同配弧,是不是同位弧对吧?哎,看见了啊,当然也它有没有用到波浪弧正则表达式看见没,是不是用上了,用上了啊,所以它这里面当然一般他不用,你看没有他用不着的时候都有单中号。那只有用到这个高级用法了,他才用双重记解了吧,所以这个东西怎么说呢,看你个人吧啊,你想用单众号双众号看你情况啊,而我我觉得官方这个写法写情况对吧,就是呃,简单了,咱们用单众号就行了,要高级用法用双中号就可以,对哎,就是这是啊,多写多多敲一个看起来高端是吧?啊写俩中号显得高端啊,那你就多敲吧啊,多敲这个都无所谓了啊,这个。
85:06
啊,这是刚才我们说的权限控制啊,权限控制刚才说了文件的最终用户的实际权限,而不是文件属性决定的啊,所以这个地方需要注意,比方说我们如果是这样的话呢,我们在文件中加一个特殊权限啊,比方说啊这个文件,这个文件我有没有写权限,现在是有的。但是我用之前曾经加的一个属性,你还记得吗?这个东西加上以后。我还能写吗?还有没有写权限,有没有写没了,为什么你真的不能写了,你看你真的不能写,你真的写进去了对吧?哎,那这个是真的不能写的啊,虽然说表面上你看好像还有写权限是吧,但实际上你已经不能写了。
86:05
啊,因为我们加了这个特殊的属性了。这个属性呢I啊,当然你要把它去了就行了,去了的话呢,CHDRR减A,这不就去了吗?去了以后呢,你看没了,没了以后呢,他现在肯定能写了。啊,再比较一下问号。对吧。好了,这是刚才看到的这样的一个用法啊。但以实际权限为。判断依据啊。那另外这儿还有所谓的什么谁和谁是谁的硬链接啊,谁和谁相比较比较老,就谁的时间比较旧啊,这个呢,还可以比较什么呢?是否这个呃存在,而且非空,这都可以判断,那这些属性呢,你都可以在T坦那个文档里面看到。
87:07
啊,另外呢,我们在执行命令的时候,我们可以把多个命令放在一块来执行,也可以用小括号或者是划括号,把它们串起来作为一个整体,就是把多个命令放在一起,不过这两个呢是有区别的。啊,区别有什么区别。这边官方有文档说明啊,不过呢,相信大家看不进去是吧?啊,这是我写的官方摘出来的慢帮录里面有的。啊,为了让你们中午有个好的饭量是吧,我就现在不讲了,那我们下午再说说这一块好吧,上午正好也差不多到这儿,咱们下午再见,下课的声音,尤其这个掌声热烈。
我来说两句