我有一个简单的环境设置脚本,可以导出一些环境变量。
#!/bin/sh
export NEWROOT=~/some/directory
echo $NEWROOT
这回显了正确的目录,但在运行之后,当我echo $NEWROOT
在同一个shell中时,它什么都不返回。
知道为什么变量没有设置?
答案 0 :(得分:0)
shell在一个单独的进程中运行,子进程中的环境变量不会影响父进程中的环境变量。
如果要在同一进程中运行脚本,可以使用dot命令,如下所示:
. myscript
答案 1 :(得分:0)
子进程不能影响其父进程的环境变量。如果您改为使用脚本,那么将评估当前环境中的脚本,并留下NEWROOT
。