设置 Shell 变量与环境变量


Linux 系统中能够设置环境变量的命令有如下几种:

set — 该命令能够设置或者取消设置 Shell 变量。当不带参数使用 set 命令时,它将打印出包括环境变量与 Shell 变量在内的全部变量以及 Shell 函数的列表。

unset — 该命令能够删除 Shell 变量以及环境变量。

export — 该命令能够设置环境变量。

为了更好地理解 Shell 变量和环境变量之间的区别,咱们先从设置 Shell 变量开始讲,而后再讲环境变量。

先从在当前会话中定义一个 Shell 变量开始:

$ MYVAR=lxlinux
你能够用 echo $MYVAR 来验证变量是否已设置:

$ echo $MYVAR
lxlinux
使用 printenv 命令检验该变量是否为环境变量:

$ printenv MYVAR
没有输出返回,这就意味着 MYVAR 变量并非环境变量。

export 命令能够用来设置环境变量。要建立环境变量,只需用 export 命令将 Shell 变量导出为环境变量:

$ export MYVAR
你能够用如下语句检验:

$ printenv MYVAR
lxlinux
固然,你也能够只用一行代码来设置环境变量:

$ export MYNEWVAR="My New Variable"
可是以这种方式建立的环境变量只能用于当前会话,若是你打开一个新的 Shell 会话,或者退出登录,全部的变量都将会丢失。

咱们也能够将环境变量还原为 Shell 变量,或者将其彻底删除:

MYVAR 变量被定义为环境变量,咱们能够经过输入如下代码将其还原为 Shell 变量:

$ export -n MYVAR
这样,MYVAR 变量就再也不是环境变量了,但依然仍是 Shell 变量。

不管是 Shell 变量仍是环境变量,想要彻底删除变量,均可以使用 unset 命令来删除:

$ unset MYVAR
能够经过如下语句来验证 MYVAR 变量已经删除:

$ echo $MYVAR
因为变量已经删除了,因此没有任何返回。

环境变量的持久化
许多程序都须要使用环境变量来决定具体的执行方式,可是,咱们并不但愿每次启动新的 Shell 会话时都必须从新设置重要的变量,所以咱们须要将重要的环境变量写

本文分享自微信公众号 - 软件测试大咖经验分享(gh_8a6f5732cffa)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。linux

相关文章
相关标签/搜索