linux - 设置变量与环境变量 Linux(debian) Bash shell

标签 linux bash debian

创建集合变量时,将它们添加到环境中有什么好处?两者都在 session 终止时丢失。我显然知道我可以向 .bashrc 添加有用的东西,我想通过我的用户访问这些东西。 只是不确定有什么好处?它有多常见?我需要担心吗?我说的是现实生活中的管理用途。

在我看来,set 是一个类中的局部变量。 ENV 显然是全局性的。也许唯一的用途是在遍历不同的 shell 时?实用性如何?

最佳答案

环境变量由您的 shell 调用的任何进程继承。这包括子 shell 和您调用的任何其他命令。

(非环境)shell 变量不是。

例如,$TERM 需要导出,因为您从 shell(文本编辑器、寻呼机、任何使用全屏文本显示的任何东西)调用的命令需要知道是什么类型您正在使用的终端,因此它可以在 termcap 或 terminfo 中查找其功能。 $LANG 和类似的变量需要导出,以便命令了解当前的语言环境。 $PATH 需要导出,这样您调用的任何命令都可以调用其他命令。

$PS1,即 shell 提示符,不需要导出,因为它只与当前 shell 相关(通常为新 shell 初始化)。

关于linux - 设置变量与环境变量 Linux(debian) Bash shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30653087/

相关文章:

linux - 如何以编程方式获取屏幕 DPI(linux,mac)?

LINUX:如何检测ftp文件上传完成

linux - 使用 bash 脚本获取文件名

linux - 带有 systemctl 的 udev 规则不再按预期工作

c - glibc - 列表和其他数据结构实现

bash - [: ==: unary operator expected-bash

bash - 如何从 git bash 使用命令行 Visual Studio 编译器?

c - 编译某些函数所需的库

regex - sed -E 和 sed -e 有什么区别

linux - Debian:SSH 并运行一个进程,如果 SSH 连接关闭,该进程不会终止