阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

简述SHELL全局环境变量与局变环境变量

33次阅读
没有评论

共计 983 个字符,预计需要花费 3 分钟才能阅读完成。

导读 在 Linux 中, 很多程序和脚本都通过环境变量来获取系统信息,存储临时数据,配置信息。环境变量是指用来存储有关 shell 会话和工作环境信息,允许你在内存中存储数据,以便程序或 shell 中运行的脚本能够轻松访问到它们。也是存储持久数据的一种简便方法。在 bash shell 中,环境变量分为:全局和局部二类环境变量。
概述
全局环境变量

全局环境变量对于 shell 会话和所有生成的子 shell 都是可见的。局部变量则只是创建它们的 shell 可见。在 linux 系统中有系统环境变量,它们基本都是使用全大写字母,以区别普通用户的环境变量。要查看系统全局变量,可以使用 env 命令, 如下图所示:

简述 SHELL 全局环境变量与局变环境变量

要查看个别的环境变量的值,可以使用 printenv 命令, 如下图所示:

简述 SHELL 全局环境变量与局变环境变量

正如前面所说的,全局变量在所有生成的子 shell 都是可见的,下面是用子 shell 输出 USER 全局变量,如下所示:

简述 SHELL 全局环境变量与局变环境变量

局部环境变量

局部环境变量虽然是局部的,但和全局环境变量一样重要。在 linux 操作系统上有默认全局环境变量也有局部环境变量,用户也可以自定义局部变量。使用 set 命令会显示某个指定进程下的所有环境变量,包括全局,局变,用户自定义变量。

用户自定义变量
自定义局部变量

下是自定义一个局部变量,使用 echo 来声明一个变量名 my_variable,并赋值一个字符串 (也可是数字)。然后再使用 echo 输出该变量的值。如下图所示:

简述 SHELL 全局环境变量与局变环境变量

要注意的点是: 声明变量名时必须加 $ 关键词, 赋值时不要加 $ 关键词, 输出时要加 $ 关键词,也可以说使用 echo 时都要加 $。变量名,等号,值三者之间不能有空格。如果变量值有空格时,必须加双引号。如下所示:

简述 SHELL 全局环境变量与局变环境变量

如果是在子 shell 中,那该变量就不存在,退回主线程还是存在,如下图所示:

简述 SHELL 全局环境变量与局变环境变量

自定义全局变量

设定了全局变量,在该进程所创建的子进程中,该变量都是可见的。创建全局变量的方法是先创建一个局部变量, 然后导出到全局环境中。通过 export 来导出,变量名前面不加 $。如下图所示:

简述 SHELL 全局环境变量与局变环境变量

在子 shell 中修改全局变量并不会影响到父 shell 中该变量的值。这种改变仅在子 shell 中有效。并不会反映到父 shell 中。如下图所示:

简述 SHELL 全局环境变量与局变环境变量

删除环境变量

要删除环境变量可以用 unset 命令,在 unset 引用变量名时,不要加 $。

简述 SHELL 全局环境变量与局变环境变量

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计983字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中