bash 导出不设置变量
bash export not setting variable
我有一个简单的环境设置脚本,可以像这样导出一些环境变量。
#!/bin/sh
export NEWROOT=~/some/directory
echo $NEWROOT
这回显了正确的目录,但是在它的 运行 之后,当我在同一个 shell 中 echo $NEWROOT
时,它 returns 什么都没有。
知道为什么变量没有设置吗?
shell是运行在一个单独的进程中,子进程中的环境变量不会影响父进程中的环境变量。
如果你想运行脚本在同一个进程中,你可以使用点命令,像这样:
. myscript
子进程不能影响其父进程的环境变量。如果改为获取脚本,那将在当前环境中评估脚本,留下 NEWROOT
.
我有一个简单的环境设置脚本,可以像这样导出一些环境变量。
#!/bin/sh
export NEWROOT=~/some/directory
echo $NEWROOT
这回显了正确的目录,但是在它的 运行 之后,当我在同一个 shell 中 echo $NEWROOT
时,它 returns 什么都没有。
知道为什么变量没有设置吗?
shell是运行在一个单独的进程中,子进程中的环境变量不会影响父进程中的环境变量。
如果你想运行脚本在同一个进程中,你可以使用点命令,像这样:
. myscript
子进程不能影响其父进程的环境变量。如果改为获取脚本,那将在当前环境中评估脚本,留下 NEWROOT
.