BASH:在.bashrc中设置变量时是否需要"导出"?

cas*_*per 14 variables bash export

我想知道在.bashrc中设置变量时是否需要使用"export".

在我的测试编辑.bashrc之间没有区别

foo=bar
Run Code Online (Sandbox Code Playgroud)

export foo=bar
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,登录后"echo $ foo"输出"bar".

我正在使用Debian Squeeze,如果这很重要的话.

提前谢谢你们.

Bla*_*iev 11

尝试创建一个访问该foo变量的shell脚本.

如果fooexport'ed,它将在shell脚本中可见,否则不会.


Han*_*Gay 10

超级用户有这个涵盖.

简短回答:export确保在子进程中设置环境变量.如果您不导出,则它仅在相同的进程/交互式会话中可用.


小智 5

这是首选,因为导出的变量会传递给子进程(从该shell启动的程序).如果没有export命令,那些变量只适用于shell本身,而不适用于从shell启动的进程