我想知道在.bashrc中设置变量时是否需要使用“导出”。BASH:在.bashrc中设置变量时需要“导出”吗?
在我的测试编辑的.bashrc有
foo=bar
和
export foo=bar
之间没有什么区别。在这两种情况下,登录后 “回声$ foo的” 产出 “栏”。
我正在使用Debian Squeeze,如果这很重要。
谢谢你们提前。
我想知道在.bashrc中设置变量时是否需要使用“导出”。BASH:在.bashrc中设置变量时需要“导出”吗?
在我的测试编辑的.bashrc有
foo=bar
和
export foo=bar
之间没有什么区别。在这两种情况下,登录后 “回声$ foo的” 产出 “栏”。
我正在使用Debian Squeeze,如果这很重要。
谢谢你们提前。
尝试创建一个访问foo
变量的shell脚本。
如果foo
是export
'ed,它将在shell脚本中可见,否则它不会。
超级用户has this covered。
简短回答:export
确保在子进程中设置环境变量。如果您不导出,则只能在相同的流程/交互式会话中使用。
我创建了一个包含“echo $ foo”的测试脚本。在登录后运行脚本的两种情况下,输出都是“bar”。我疯了吗?任何人都可以重现吗? – casper 2011-06-09 18:28:23
这是可取的,因为导出的变量传递给子进程(从该shell启动的程序)。如果没有export命令,那些变量只适用于shell本身,而不适用于从shell启动的进程
我创建了一个包含“'echo $ foo'”的测试脚本。在登录后运行脚本的两种情况下,输出都是“bar”。我疯了吗?任何人都可以重现吗? – casper 2011-06-09 19:07:54
你如何运行脚本? '。/ script'或'。 script'? – 2011-06-09 19:13:08
我通过''。/ script''运行脚本 – casper 2011-06-09 19:27:00