根据 BASH 参考手册:
export
export [-fn] [-p] [name[=value]]
Mark each name to be passed to child processes in the environment.
我曾经遇到过一个例子:
PS1=<\u\h \W>\$
export PS1
我从文档和示例中了解到,export 用于将环境变化渗透到多个 shell 中?我感到困惑的是,我多次没有看到它在类似情况下使用,但一切仍然按预期工作。
例如,我创建了一个环境变量来跟踪配置文件的加载顺序。以下是我的 .bashrc 文件中的示例:
PROFILE_ORDER="$PROFILE_ORDER:~/.bashrc"
并产生这种行为
$ echo $PROFILE_ORDER
/etc/bash.bashrc:~/.bashrc
如果我的理解出口是正确的,那么为什么我在创建和修改 $PROFILE_ORDER 时不需要使用它?
答案1
export 用于设置可从当前 shell 执行的 shell 访问的变量。
> x=1
> export y=2
> echo $x $y
1 2
> bash
> echo $x $y
2
.bashrc
每次打开新 shell 时都会执行,所以如果我y=2
在那里设置,它就会在每个新 shell 中都知道,而无需使用export