是“出口”吗?在 .bashrc 中设置变量时需要吗?
我想知道在.bashrc中设置变量时是否需要使用“导出”。
之间没有区别
foo=bar
在我编辑 .bashrc 的测试中,和
export foo=bar
。 在这两种情况下,登录后“echo $foo”输出“bar”。
我正在使用 Debian Squeeze,如果这很重要的话。
提前谢谢你们了。
I wonder if there is a need to use "export" when setting a variable in .bashrc.
In my tests editing .bashrc there was no difference between
foo=bar
and
export foo=bar
In both cases, after login "echo $foo" outputs "bar".
I am using Debian Squeeze, if that matters.
Thank you guys in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
尝试创建一个访问
foo
变量的 shell 脚本。如果
foo
被export
'ed,它将在 shell 脚本中可见,否则不会。Try creating a shell script that accesses the
foo
variable.If
foo
wasexport
'ed, it will be visible in the shell script, otherwise it won't.SuperUser 已涵盖此内容。
简短回答:
export
确保在子进程中设置环境变量。如果您不导出,则它仅在同一进程/交互式会话中可用。SuperUser has this covered.
Short answer:
export
makes sure the environment variable is set in child processes. If you don't export, it's only available in the same process/interactive session.这是更可取的,因为导出的变量会传递给子进程(从该 shell 启动的程序)。如果没有导出命令,这些变量仅适用于 shell 本身,而不适用于从 shell 启动的进程
It's preferable because exported variables get passed to child processes (programs launched from that shell). Without the export command those variables only apply to the shell itself and not processes launched from the shell