00:00
大家好,欢迎大家收看上硅谷的云计算课程,我是沈超老师。这节课呢,我们来继续讲share尔基础,我们来看看十尔脚本的执行方法,那首先我们需要先写一个脚本,对吧?那我们说了,我们写一个最简单的脚本,Hello word叫。最好使用这个12脚本,最好使用这个点SH结尾吧,最好好怎么写呢?第一句话。并下的被试各位,我们前面一直说啊,在事当中井号开头的是注释对吧,但是你小心啊,这个东西叫做卑试报。这个不是注释,这个东西你可以理解为它标识的是我以下程序写的是事程序告诉系统我应该用什么程序来解释,这个语言就解释你写的东西,所以这句话对我们的事脚本来讲是不可省略的。
01:00
但是我越说不可以。我们总会就有学员跟我对着干。然后呢,他就会故意不写,然后你不写就完了呗,你还去你悄悄的就完了呗,他还要告诉我说,超哥,你看我没写呀,他不也正确执行了吗?他的言下之意是老师,你是不是说错了?那我想说各位,如果你现在我们写的是纯善交流,纯善交流,而且是在历史环境下写的话,那这种情况下不写这个我们绝大多数脚本是可以正确执行。嗯,但是。我一直在说share程序,它是一个比较简单的程序。稍微复杂一点的东西上就处理不了,比如说我们后面我们会要讲什么批量重启计算机,那这个时候我必须要实现一个人机交互。为啥就是说他会要求我输入账号,那我就必须手工这个如果是手工执行,就来手工来输入账号。那如果要他还会要求我输入密码,那我就来手工输入密码,那这就是交互啊,那我们说事是完成不了的,这样的东西了事只能你写好东西直接执行,不能说你计算机等到那然后你Sha尔再往里面输事尔做不到,那但是其他的情况,比如说像VI,我们都可以通过IO命令来取代,它来取代包括什么批量添加用户,我们设密码都可以不用交,对吧,都可以用其他的命令来取代。
02:24
但是这个重启这个它就没办法,那怎么办?我就需要在Sha当中嵌套入更高级的语言,我们使用的是。这样一种语言,那用它只实现这个Sha的人机交互,那这个时候也就是说我允许你写看写一部分Sha尔程序,然后呢,中间帮机嵌套一个其他的程序,那这个时候如果你不写清楚这个被棒。你这个程序就绝不可能正确执行,因为你写的东西不全,不是所有的程序都是上语言,你嵌入了一行其他的语言,这个时候这个程序被释放,这个开头的标志就一定要存在。
03:04
换句话说啊,各位。你所认为的不写这个开头,Shell脚本是能够执行的,只是在特定的情况下,特定的情形,特定的系统中可以。但是如果是要标准的,这个东西是一定要写的,你不要忘了,就像我们写PP程序一样,一定要写一个问号PP。然后告诉啊不不不需要这个结,然后问号告诉系统,我中间写的是PP。就像写Python一样,我一定要写user,并下的Python这样一个程序告诉,然后也是为什么告诉系统,我下面写的是Python。这是一个意思啊,所以不要省略这句话,你听清楚啊,虽然在我们绝大多数的12程序中,不写这句话也不会报错,但是它是不合理的,我这就这个东西我说了很多啊,原因就是。总有学员不行了,你说这东西不行,他就非要试试,那我们就来解释一下为什么不行,OK,好了,那写第一个程序呢,那我们就直接IO就行了,IO这个打印什么东西直接打印就行了。
04:06
哎,对,小心这事啊,如果你要是在这后面加感叹号,请你注意要加空格。这个东西都是上程序的问题,如果不加系统反而会报错啊,那这样来写啊,那我们试一下啊,IQ这个你看,如果我要只是写一串一,没有空制也的指向,如果加上感叹号呢,看。他报错感叹号,不知道你在说什么,这个符号不认识,那解决办法就是在这后面加空格就解决了。哎,各位,我跟你讲,为什么说运维思想,就是觉得编程思想很难理解,我告诉你编程就这样,他就抠这个啊不不不不,这块加个空格啊感叹号就能执行,看到吧,那原因就是编程就抠这个东西。什么地方有空格,什么地方没空格,我是用单引号呢,还是用双引号呢?还是用反引号,反引号数字一旁边那个键是反反引号,OK。
05:01
那还你是用小括号呢,还是用这个中括号呢,还是用大括号,都是要考虑的,各位这个东西就说12编程。有点就是运维思想有点像啥。有点像这个北方的糙老爷们,直来直去,就像超哥这样的,不会这个耍心眼,就是是什么就是什么,背下来就会简单粗暴。而编程思想呢,就有点儿像这种南方的这种小家宾,或者是这种委婉的江南女子,他跟你说句话,你要琢磨很长时间,你可能才能想明白他在说什么。哎,边城就有这个情况,所以我说互相之间都很难理解这个,这个北方糙老爷们很难理解南方女孩子为什么这么,呃,这个怎么说呢,那北南方女孩子也很难理解北方糙老爷,我操你他妈这些都是什么什么对吧,所以我说认为思想和变成思想有时候很讨厌,就是就是这种小东西,你注意啊,好,那现在我这个程序hello word就这个hello就写完了,OK,就这么简单,就输出就行,那现在我怎么让它能执行的啊,我的程序脚本就写完了,我这里输出了一句话,就经跟111没什么区别,就是就是一个测试的脚本。
06:17
那怎么执行呢?两种方法。一种方法最常见,也推荐你们使用,赋予执行权限,然后通过绝对路径或者相对路径来调用它,然后就让它运行。这是最常见的12脚本执行方法,那也就是说,首先我需要干嘛给他付执行权限?对吧,让他现在拥有均权限,接下来呢,我就要不然通过绝对路径。来执行它,要不然就通过相对路径,当然相对路径是要保证你的程序脚本刚好在当前目录下,然后执行,也就是说。呃,这两种方法其实是一样的方法,就是通过路径找到这个执行文件,各位推荐用这种方法,我们Linux当中的执行程序标准默认都应该是这样的,都是通过路径找到它运行。
07:09
包括我们前面讲的一个启动阿帕奇,你记得吧,是不是也都是在ETC下i.D下,i.D下找到它,然后回车运行对不对?所以各位推荐这种方法更符合洗碗。那还有另外一种方法,就是。前面直接拿被使来调用这个脚本,这样也行,这样甚至都不需要给这个脚本附均权线。不复真权限被是直接调用。也是可以执行的,就是说直接用事来调用解释,它也能执行,但是这种方法呢,并不奇怪啊,我们也很少用,大家知道就行,也就是说我直接这样写被试,然后这个hello word也能运行啊,甚至都不需要给它复制权限,上面这种运行就必须要复制权限。那推荐用第一种啊。好了,那这就是执行方法,非常简单,那非常简单的方法,反而我们强调的事情是什么,这个被试棒,这个东西你不能省略啊,这个事儿一定要注意好。
08:10
那这节课的内容就是这样,我们下节课再见。
我来说两句