主页 > 软件开发  > 

环境变量与本地变量

环境变量与本地变量

目录

本地变量的创建

环境变量VS本地变量


认识完了环境变量我们来认识一下本地变量。

本地变量的创建

我们如果直接env是看不到本地变量的,因为本地变量和环境变量都具有独立性,环境变量是系统提供的具有全局属性的变量,都存在bash进程的env表中,而本地变量由于是独立存在的,所以在bash进程中肯定也存在存储本地变量的表,

本地变量是在shell内部自己维护的只给shell自己使用的,操作系统自己要看懂这些本地变量还需要借助bash解释器。

那我们怎么看到呢,使用set指令就可以了,本地变量我们也是自己创建的,也是可以在shell上使用的。

我们平时的创建变量就是在创建本地变量了,如下。

这里切记=前面后面不要有空格,同样本地变量也可以使用echo+$解析,接着set一下看有没有在里面,发现果然变量a,b,c全部成了本地变量了。

那本地变量虽然是独立的,但是可以使用export进行转化成环境变量,但是这个过程实际上没有什么实际意义。

export支持赋值了再转化。

环境变量VS本地变量

环境变量是可以被子进程继承的,下面代码演示证明:

我们首次运行可得这个CODE不是环境变量。

然后我们设置CODE为环境变量,请看。

然后环境变量是可以被解除的,使用unset就可以解除环境变量。

可以看出是子进程code继承了环境变量并解析其中的意思来做了if的判断,而由于本地变量没有被子进程继承到才陷入了死循环。

除了可以使用env环境变量表可以直接查看所有的环境变量,使用指向环境变量表的environ指针也可以间接访问全部的环境变量。

最后,环境变量可以被所有的bash之后的进程看到,所以环境变量具有全局属性,为什么呢,原因如下两点:

1。系统的配置信息,尤其是具有指导性的配置信息,他是系统配置的一种表现

2。进程具有独立性!环境变量可以用来进程间传递只读数据,所以环境变量具有全局性

标签:

环境变量与本地变量由讯客互联软件开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“环境变量与本地变量