bash export不设置变量

时间:2015-03-06 04:04:09

标签: bash environment-variables

我有一个简单的环境设置脚本,可以导出一些环境变量。

#!/bin/sh

export NEWROOT=~/some/directory
echo $NEWROOT

这回显了正确的目录,但在运行之后,当我echo $NEWROOT在同一个shell中时,它什么都不返回。

知道为什么变量没有设置?

2 个答案:

答案 0 :(得分:0)

shell在一个单独的进程中运行,子进程中的环境变量不会影响父进程中的环境变量。

如果要在同一进程中运行脚本,可以使用dot命令,如下所示:

. myscript

答案 1 :(得分:0)

子进程不能影响其父进程的环境变量。如果您改为使用脚本,那么将评估当前环境中的脚本,并留下NEWROOT