00:00
好,那么正所谓万丈高楼平地起啊,我们这个学编程的时候,大家都知道,不管什么编程语言啊,复杂的也好,简单的也好,是不是都要学一个变量啊。对不对,你进行加减乘除对不对,那肯定是要变量的,那么在Linux里边啊,在这个下编程里边这个变量它是怎么回事呢?我们来给大家介绍一下shell的变量。我们来学习一下12的变量,好往下走。Shell的变量。给他一个标题对吧,十的变量。那首先呢,我们来看一下,呃,这个变量里面有哪些需要给大家了解的,第一个呢,先给同学们说一下share变量的介绍,第二个呢,先share变量的定义,第三个呢,我们来一个这个快速入门。啊,有几个案例给他走一走,好这样子呢,就就快速的给大家走一遍,这个不难啊,这个这个挺简单的,如果有同学学过一些编程语言,像像什么Java呀,或者C呀啊或者其他编程言那玩玩这个就跟就就小菜一碟了,就他他比我们那种传统的编程语言那还是要简单的啊OK,好,第一个我们来看看下。
01:17
变量的介绍,我们来看这几句话啊,朋友们。看第一个LINUX12的变量分为两种,一种呢,我们叫做什么呀,系统的变量。什么叫系统变量呢?就是。系统已经给你定义好的,你拿来直接用。第二种呢,叫用户自定义的变量,能明白吗?什么叫做用户自定义的,就是你自己杆儿根据编程的需要来定义的变量。你比方说吧,系统变量,系统变量呢,呃,你比方说系统变量像这个呃,Home。Pwd she user等等,这些其实都已经有了,你可以直接拿来用。你再比如说显示当前下中所有的变量,用set这个指令就可以看,那我给同学们演示一下。
02:03
我给同学们演示一下,来走一个。演示一个案例。比方说,我们还以。刚才这个为例,VM。Vim my12,好,我在这里面呢,输几个变量啊,我把这个先注销了。来走一个比方说我们有些预定义的变量,比如说打个比方吧,Pass。Pass。Path等于你在这用的时候这样用啊,用个Dollar bath,注意Dollar这个就代表我去要输出一个变量。这个变量pass呢,你没有定义就拿来用了,说明它是个系统变量。明白好,那如果说你要看别的,也可以以此类推啊,以此类推你比如说。我写个user,这个变量等于什么呢?Dollar user。好,我们来执行一下,看看能否看到这个内容。好,我现在还是老规矩,给他一个可执行权限啊。
03:03
现在因为我刚才把可证权限给他拿掉了。好,这样子走迈回车,大家看到没有?Pass。有人。换了一行,是不是给你输出了U等于root呀?因为这个一个echo,它会自动的给你来一个换行,看明白没有,只要一个echo它会给你换行看pass等于这个。User等于root。看到没有,好,这就是他一个最简单的案例,对吧。好,我把它。给同学们拿过来。不着急啊,他们一点儿点儿学。这个叫什么呢?输出预定义变量是这意思吧。输出预定义变量系统变量啊。输出。系统变量。保存到咱们笔记中去,非常简单。
04:02
那么还有一个指令,有些同学说,老师我想看看当前线中所有的变量呢,用set就可以看了,简单给同学们演示一下。我退出来直接输。看别人多不多。朱老师,我没看见你看这么多。如果你没看见没关系,我用我们非常。用的非常多的一个叫分页显示。有没有?有没有空格有没有是吧,很多吧,很多很多。好,那这个呢,直接用就行了,下面我们来看。Share变量的定义。线变成第一。就一个。那么我们来看看前面的是系统变量,那么我们用户要自定义变量又怎么办呢?非常简单,定义变量就是一个变量名。
05:03
给一个等号带一个值就行了。如果这个变量你不想要了。销毁了onset。还有呢,我们可以通过read only。干什么来声明一个静态变量?静态变量不能啊。不能onet好,那这样子我们根据这个需求呢,我们一个个来讲,我们先来看第一个。第一个。定义一个变量A,撤销一个变量A,看清楚了啊,要写代码了。这两个我们把它放在一起吧。注意看老师的代码,给你们演示YM。My shop。好,上面这个呢,我们做一个促销好不好。好,往下来写一个,我们定义一个变量A。非常的简单,等于比如说这个A变量定一个100。看到没有,然后我们输出一下这个A变量。
06:02
A。看啊A。等于多少呢?Dollar a,注意看,就说你在定义的时候不需要写Dollar,但是在引用和这个输出的时候,咱们需要一个Dollar符啊,这是它的一个语法规则。让我onset。Set一个A。给不要了,然后我再输出看看还有没有。A。等于。Dollar a,看看啊,前面是定义过后,我马上输出,然后我onet它了又输出,我们看还有没有。第二买12回撤。同学,看第一次是不是输出来了?第二次是不是没有了,是不是相当于把我们那个变量A变量怎么样了。就是销毁了,销毁了,好这段代码呢,给同学们粘过来。好,写到这里来啊,各位朋友。
07:00
这块我们叫做什么呀,叫做。定义一个自己的变量,自定义变量。自定义变量能看懂吗?下面这个是干啥?下面这个是onset一个自定义变量,看清楚没有?就是set一个变量。Site。一个变量哦了。我把这个呢给同学们拿到笔记中去。看清楚没有,好,下边我们再来看声明,一个静态变量,但是不能ET,就是静态变量可以。它是静态变量什么意思?就是说你在编译的时候,你只要是静态变量,它的特点还是一样,就是不会反复的去这个去给你定义和声明啊,那么静态编程在我们编程的时候呢,比如说有些值,你你是也希望以静态的方式存在,就可以生明这个B,但是静态编程不能onet onet的话就会报错,我给同学们举个例子。
08:07
好来再来编辑一下,我把这个先注销了啊。注销。注销。注销,好朋友们,下面呢,我们来走下一个。下一个嗯,咱们写一个静态变量,静态变量这么声明。Read。Only。是不是它变关键字了呀,比如说我们的A把它定义成一个静态变量,比如说是。九十九十九。然后呢,我echo一下这个A。A等于Dollar a没问题。啊,没问题,然后呢,我们尝试着onet看一下,它会报错不?A。好,我们又输出这个A。等于。A。好,我们看看这个时候它会提示什么信息呢。
09:01
同学们可以看到,第一次是没有任何问题的。第二次,他说在16行。什么呀,他说不可以onset一个read only,就是我们静态变量看到没有,所以它输出还是它在16行,怎么看呢?大家看vim。进去,我们来让它显示行号,还记得怎么做吧。进入到这个命令行模式,Set nu。是不是16行,看这。看到没有好,所以这个地方呢,大家要注意啊,不能on一个就是read only的变量,或者叫静态变量。我把这个呢给同学们放到笔记中去,看懂了没有?不难吧?不难啊,大家看这个就是一个静态变量。声明和使用了一下静态变量。这里。或者定义啊定义。和使用。
10:00
和使用静态。变量。那么这地方有一个呃,Onet静态变量我们失败了,所以说这要提醒一下大家,就是静态变量不能onet。静态。变量不能什么呀,Set。好了。好,这是一个基本语法,大家要知道。第四一个。可以把一个变量提升为全局环境变量。可供其他。这个小程序使用。那这个呢,什么说把一个变量提升为一个环境变量呢,这个后面我们再说这个环境变量的时候啊,我待会再讲这个案例,好吧,我待会再讲这个案例,其实说白了他他也很简单。呃,它就是用一个export就行了,那么这个地方呢,一定要去说的话呢,就是我们在后边讲这个地这个地方的时候,再给大家讲就在这。
11:03
讲这个系统变量的时候,再给大家讲一个意思啊,一个意思,所以说这个这个案例呢,我放到待会再给大家讲,这部是叫全局环境变量,供其他下程序使用是什么意思。啊,是什么意思?待会我会给大家就是举例在说明,好,这个案例我们先暂时放一放。在哪放呢,后面再讲啊,后面再说。待会儿会体验到什么叫做供其他这个程序使用。一会儿举例。好OK,好,那关于我们这一个share sharell表脚本的这个变量这块的定义和使用呢,我们就说到这儿,这过后,然后呢,还有一点东西要说,就是关于我们这个变量定义的一些规则。啊和它的一个把这个返回值给变量怎么使用,那么这里面还有这么两个东西来看一下。那朋友们。把这块一并放到这里来。
12:01
注意听讲啊。这还是说的这个十变变量的事儿。这儿还是说的线变证是。啊,这个呢,是定义变量的规则有哪些,我们来。好,把这个往后面挪一下。第二个就是怎么把一个命令的结果返回给变量,这个是一个重点,因为后面呢,这个地方用的很多。对吧,这个肯定用的很多,那么先看第一个吧,就是这个变量呢,名称可以用数字,呃,字母数字和下划线组成,但是不能以数字开头,怎么个意思呢?你你比方说吧,同学们。一比方说。你看我们在定义一个变量的时候啊。好,我们往下看右。好,我们往下看啊,我们往下看。同学们。比如说我们现在要定义一个变量了。
13:02
我们现在要定义一个变量了,我可以这么去定义。我可以这么去定义,比如说我定一个A。等于。19没问题,我可以定义一个name。Name等于什么呢?等于一个hello,对吧?或者说我们就就写个number吧,Number等于多少呢?Number my。Number。等于多少呢?比如说它等于这个。呃,89这是没有问题的,你在这输出也是OK的,比如说你输出啊,我有个Dollar a。对吧,还有打一个空格,然后Dollar my number没问题。但是呢,我们不能这样去定义,说老师我能不能以数字打头定义一个变量,比如。5A等于。这个零,那这个时候他就会报错,他就会报错来我们执行一下。
14:01
看效果,同学们看到前面两个是不是正确的呀?到了这儿,他说22行5A不对。所以说这个地方呢,要注意我们这个,呃,这个就是什么意思呢?就是说我们这个变量名不能以数字开头,另外等号两侧不要有空格。这个是我们出现的容易。忽略的,因为我们以前在学,不管学Java还是学其他编程语言,老师总会告诉你们,诶,你们在定一个变量的时候要小心哦,最好是比如说定一个变量空格,然后给一个什么什么什么对吧,一般都是这样子说,还故意要强调一下等号里面要打空格。但是she中刚好相反。两侧不能有空格,有空格会报错。啊,那么变量名称呢,一般习惯都为大写,很少用小写。比如说我们现在要定义一个汤姆凯特的加目录,一般会这样写,汤姆凯特home。大写啊,这是线编程的一些特点,特点,那么我们来做一个小测试,看一下是不是这样子的。
15:04
How my shop。好,同学们,我把这个呢给同学们测一下。你比方说吧,我把这个删掉了啊,这个我就删掉了。比方说这有个空格。你看这个社会怎么样呢?是报错了呀。哎,报错了,所以说我们在定义的时候呢,咱们两侧是不能够有空格的。看到没有?不能空格,然后你再输出就OK了。看到没有好,至于这个变量名是必须就是说尽量用大小写,这个呢,就是大写来定,这个是一个习惯。这个是一个习惯,再看用命令的,将命令返回值返回一个,给一个变量,这个怎么做呢?两种方式,一种是反引号。一种是。Dollar符,然后呢,用两个小括号括起来。
16:03
等价于反引号,那我给同学们演示一个案例就行了啊,各举一个案例。各举案的。来吧,我们就把这个输出来。来,走一个。因为这块都比较简单,所以说老师呢。你就直接举例子就行了,好不好。直接写。比如说我这有一个result。结果。等于翻译号。这个反引号怎么输进去的啊,是你键盘的左上角。那个ESC键下面那个明白吧,LS-A,比如说我要输出后面下面的。来,我们一口下。我们E一个什么呢。Result。看效果。同学们。
17:00
同学们看效果。诶,这就不对啊,刚才这个老师写的有问题,我们看一下。呃,翻译号。Sumt,我们少了一个什么呀?Dollar服看到没有?在引用的时候是不是要把Dollar引刚才老师自己说过的吧,看。是不是都出来了?好,还有一种方式。就是还可以用什么呢?用那个小括号我们来写来写一个来我们打一个空格,Echo。啊,这个输出一个回车换行啊,输出一个空行。然后呢,我们再输一个结果。Result,比如说我要输出日期吧。表示期。Date等于。我当然可以这样写。DT。可以吧,但是呢,这次我们换一个写法。到那。包起来dat。这就是把这个date。
18:00
指令的结果返回给这个变量明白,然后呢,我们怎么样echo一下。写出date等于Dollar。下划线。能理解什么意思吧,保存走一个。同学们,看到是不是这有个空行啊,然后再输出你的日期是这样子的,看到没有。没问题吧,这个好非常的简单啊,非常简单,我把这个呢给同学们截取一下。截取一下来走一个。这个第一个用法。看这。使用反引号。使用这个反引号。将。将命令。将命令命令括起来。括起来啊,这是一种方式。还有一种方式呢,就是这种方式大家看。
19:03
对吧,这种方式呢,是用这个小括号的方式。使用什么呢?诶实用。到那儿。括起来。这种方式来执行。来执行也可。也可以对吧,那看你的习惯了,一般来说会推荐使用。这种。看起来更直观一些。两个我们放在一起吧。好朋友们。这是将结果返回来对吧,将结果返回来。那么关于这个变量的。12变量这个介绍呢,我们就先说到这里。
我来说两句