系统相关
首页 > 系统相关> > shell脚本:环境变量

shell脚本:环境变量

作者:互联网

环境变量

环境变量可以分成两种:全局变量与局部变量

linux中的全局变量是linux系统提前定义好的变量,不管是root还是普通用户登录系统,都是默认使用系统提前定义好的环境变量。

局部变量它只在当前的shell环境中有效,当进入子程序或新的子shell环境时,局部变量将无法再使用。

可以通过一个简单的例子,来理解全局和局部的区别

[root@linus ~]# echo $LANG
zh_CN.UTF-8
[root@linus ~]# bash
[root@linus ~]# echo $LANG
zh_CN.UTF-8

这是全局变量,进入新的shell环境,全局变量也不会改变。

[root@linus ~]# a=hhh
[root@linus ~]# echo $a
hhh
[root@linus ~]# bash
[root@linus ~]# echo $a

而局部变量只在当前shell环境中生效,打开一个新的shell环境,局部变量将无法使用。

区分全局和局部
对于区分全局和局部变量,除了打开新的shell环境外,还可以通过set和env命令进行区分。

首先是set,可以输出所有变量,包括局部和全局

[root@linus ~]# a=hhh
[root@linus ~]# set | grep a=h
a=hhh

而env(printenv)只显示全局变量

[root@linus ~]# a=hhh
[root@linus ~]# env | grep a=h

局部转全局

想让变量在全局生效,可以使用export命令。

export命令可以对已有变量进行转换,也可直接定义全局变量

[root@linus ~]# export a #转换已有变量
[root@linus ~]# env | grep a=h
a=hhh
[root@linus ~]# export b=ddd #直接定义全部变量
[root@linus ~]# env | grep b=d
b=ddd

不过,此种设置全局变量方式,只是把数据写入了内存中,若重启或清空缓存,设置的全局变量将不复存在。

全局变量永久生效

我们登陆系统后,就会默认打开一个shell,这是系统的主shell,其文件位于/etc/profile,对所有用户都生效。

而对于不同的用户,也有属于自己的用户shell文件,那是个隐藏文件,位于自己家目录下的.bash_profile,只对单用户生效。

编辑都很简单,直接在文件中添加内容,随后刷新一下配置文件即可。以单用户全局文件为例:

[root@linus ~]# vim .bash_profile 
[root@linus ~]# source .bash_profile 

若非所有用户都能用到,在个别用户中添加即可。

萎靡不振 发布了71 篇原创文章 · 获赞 8 · 访问量 5879 私信 关注

标签:脚本,shell,root,局部变量,hhh,全局变量,linus,环境变量
来源: https://blog.csdn.net/qq_42534026/article/details/104496086