创建设置变量时,将它们添加到环境中有什么好处?两者都在会议终止时丢失。我知道很明显我可以添加有用的东西到.bashrc我想通过我的用户访问。 只是不确定有什么优势?这是多么常见的做法?我需要担心吗?我说的是现实生活中的管理用途。
在我看来,set就是一个类中的局部变量。 ENV显然是全球性的。也许唯一的用途是穿越不同的贝壳?它有多实用?
答案 0 :(得分:5)
环境变量由shell调用的任何进程继承。这包括子shell和您调用的任何其他命令。
(非环境)shell变量不是。
例如,需要导出$TERM
,因为从shell调用的命令(文本编辑器,寻呼机,使用全屏文本显示的任何内容)需要知道你的终端类型是什么重新使用,因此它可以在termcap或terminfo中查找其功能。需要导出$LANG
和类似的变量,以便命令知道当前的语言环境。需要导出$PATH
,以便您调用的任何命令都可以调用其他命令。
$PS1
不需要导出,因为它只与当前shell相关(通常为新shell初始化)。