Bash环境变量的那些事(2)
程序的正常工作离不开各种变量,例如要将某个选项设置为打开,又或者让程序找到所需的代码库,都需要使用变量。在 bash 中运行程序的时候会生成一个子 shell,这个子 shell 和执行原程序的父 shell 并不是完全一样的,只是继承了父 shell 的部分内容,而且默认是不继承父 shell 中的变量的。因为变量默认情况下是局部变量,出于安全原因,一个 shell 中的局部变量不会被另一个 shell 读取到,即使是子 shell 也不可以。 下面举一个例子。首先定义一个变量:
然后执行:
现在是在 bash shell 中创建了一个子 shell。 执行这个命令看看还能不能读取到刚才定义的变量:
你会发现读取不到。 还是在这个子 shell 中,为
再读取一次:
退出这个子 shell:
然后再看一下现在
这一个特性可以有效避免配置过程中产生混乱,同时也会导致一个问题:如果程序中需要设置变量,但却由于子 shell 的原因无法正常访问到这个变量,该如何解决呢?这个时候就需要用到 重复一次刚才的过程,但这一次不是通过
现在你会发现,在进入子 shell 之后, 要注意的是,尽管子 shell 会继承通过 如果要查看所有通过
自定义的变量会显示在这个列表的末尾。这个列表中还有一些常见的变量:例如
就会切换到上一个访问过的目录,那是因为 你也可以使用 如果要取消导出一个变量,可以加上
接下来了解过环境变量的知识之后,你已经到达了可能对自己和他人造成危险的水平,接下来就需要了解如何通过使用别名来让环境变得更安全、更友好以保护自己了。 【编辑推荐】
点赞 0 (编辑:ASP站长网) |