【问题标题】:bash export not setting variable [duplicate]bash导出未设置变量[重复]
【发布时间】:2015-03-06 04:04:09
【问题描述】:

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

#!/bin/sh

export NEWROOT=~/some/directory
echo $NEWROOT

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

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

【问题讨论】:

    标签: bash environment-variables


    【解决方案1】:

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

    如果你想在同一个进程中运行脚本,可以使用点命令,像这样:

    . myscript
    

    【讨论】:

    • 如果我把这些放在 .bash_profile 中它会工作吗?因为那是为了创建进程而运行的
    • @chris: 是的,或者在 .bashrc 中
    【解决方案2】:

    子进程不能影响其父进程的环境变量。如果您改为获取脚本,则会在当前环境中评估脚本,留下NEWROOT

    【讨论】:

      猜你喜欢
      • 2018-10-24
      • 1970-01-01
      • 2021-08-29
      • 2014-06-29
      • 2011-06-21
      • 2021-12-28
      • 1970-01-01
      • 2015-09-18
      相关资源
      最近更新 更多