当前位置: 首页 > 知识库问答 >
问题:

未导出bash环境变量[重复]

鞠乐
2023-03-14

我有两个shell脚本:

第一个:<代码>1。sh,其内容如下:

export PROP="my val"

第二:<代码>2。sh,其内容如下:

./1.sh
echo $PROP

两者都具有执行权限。当我运行<代码>2时。sh,我希望环境变量PROP由1设置和导出。sh,对2中的echo$PROP语句可见。sh将被打印出来。但输出为空,表示PROP对<代码>2不可见。sh。这里怎么了?

共有1个答案

吕子真
2023-03-14

尝试在当前过程中获取脚本:

. 1.sh
echo $PROP

然后您可以同时删除导出:

PROP="my val"

问题是您正在一个新的shell进程中运行1.sh,因此当进程结束时,它对其环境所做的任何更改都将丢失。具体来说,导出使变量对当前进程的子进程可用,因此在这种情况下,它不能影响2.sh(父进程)。

 类似资料:
  • 问题内容: 我在致电时设置环境变量时遇到问题。似乎没有设置环境变量。关于如何为Python命令行调用正确设置环境变量的任何建议? 我的目标是运行一个使用从我的Python代码确定的环境变量的脚本: 但是脚本的反应就像从未设置过变量一样 这是我尝试使用Python的交互式解释器进行测试: 输出为: 我认为应该为子流程设置环境,但是显然没有。有关如何更正此问题的任何建议? 问题答案: 命令行上 环境变

  • 请考虑以下内容:你希望程序打印出你的用户名。这个程序怎么知道的?在 Linux 中有一些环境变量。这意味着你的 shell 中有许多变量,其中许多变量自动设置,每次运行程序时,其中一些变量将传递给该程序。 详细说明: 一些变量只为你当前的 shell 设置。它们被称为本地 shell 变量。你可以通过键入set,一个 bash 内置命令来列出它们 ,这意味着没有启动其它程序,之后你执行了它。此命令

  • 我甚至无法从脚本中导出最简单的变量来在bash中工作——我错了什么? 文件test.sh: bash测试: 编辑: 我现在从答案中知道,这行不通-但是,如何在进程之间记住单个变量呢?我需要将其存储在文件中吗?

  • 我需要导出很多变量,比如export x1=1 export x2=2 我移动了文件中的所有变量。环境和尝试 源代码 之后我处决了 所有这些变量都不在环境变量列表中。我还尝试了

  • 我有一个简单的docker容器,它在启动时运行一个导出一些变量的脚本。 所以Dockerfile中的最后一行是 而startup.sh有 运行容器时,终端中的输出显示“test ”,正如我所料。 然而,如果我随后运行< code > docker exec-it * container id * bash 并在容器内运行< code>echo $testvar,它将为空。 环境var没有持久化吗?

  • 我有一个奇怪的例子,我有一个secret.env文件,我把所有的环境变量都设置成这样: 秘密. env 然后我构建了一个docker文件来导出所有变量并运行应用程序: 但是,这将引发一个关键错误: 当我在我的窗户上运行这个程序时,它工作得很好! 有人能帮我一下吗?