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

从键/值对文件中设置环境变量

劳亦
2023-03-14

我如何将一组键/值对从文本文件导出到shell环境中?

以下是问题的原始版本,并举例说明,以资记录。

我正在bash中编写一个脚本,它解析某个文件夹中包含3个变量的文件,这是其中之一:

MINIENTREGA_FECHALIMITE="2011-03-31"
MINIENTREGA_FICHEROS="informe.txt programa.c"
MINIENTREGA_DESTINO="./destino/entrega-prac1"

然后,我的脚本minientrega.sh使用以下代码解析文件:

cat ./conf/$1 | while read line; do
    export $line
done

但是当我在命令行中执行minientrega.sh prac1时,它不会设置环境变量

我还尝试使用source./conf/$1,但同样的问题仍然存在

共有1个答案

卢朝
2023-03-14

您的方法的一个问题是while循环中的export发生在子shell中,并且这些变量在当前shell(while循环的父shell)中不可用。

在文件本身中添加export命令:

export MINIENTREGA_FECHALIMITE="2011-03-31"
export MINIENTREGA_FICHEROS="informe.txt programa.c"
export MINIENTREGA_DESTINO="./destino/entrega-prac1"

那么您需要在当前shell中的文件中使用:

. ./conf/prac1
source ./conf/prac1
 类似资料:
  • TL公司;DR:如何将一组键/值对从文本文件导出到shell环境? 为了记录在案,以下是问题的原始版本,并附有示例。 我正在bash中编写一个脚本,它解析某个文件夹中具有3个变量的文件,这是其中之一: 此文件存储在 中 我的脚本然后使用以下代码解析文件: 但是当我在命令行中执行 时,它不会设置环境变量 我还尝试使用< code>source。/conf/$1但是同样的问题仍然存在 也许还有其他方法

  • 假设我有. env文件包含如下行: 不像普通的文件有< code>export前缀,所以我不能直接获取文件。 创建从. env文件加载内容并将其设置为环境变量的外壳脚本的最简单方法是什么?

  • 为了给OpenStack命令行客户端提供所需的环境变量,您必须创建OpenStack RC文件,或者说叫openrc.sh文件。如果您安装的时候有这个文件,您可以在OpenStack控制台用任意一个用户下载到这个文件。这个针对某个project有效地文件包含了所有OpenStack服务所需的关键信息。 当您手动载入这个文件时,里面的环境变量配置便会加载进当前Shell中。这些环境变量连接了本地的O

  • 我想在启动脚本中设置环境变量(如),同时仍然能够仅用一个命令启动应用程序。

  • 问题内容: 我希望能够在交互式sbt shell中设置环境变量,但我似乎找不到找到这种方法的方法。(我看过官方的sbt文档以及stackoverflow都没有成功)。 我想说明的是, 我不需要 在文件中设置此环境变量,而是可以在交互式sbt shell会话中即时更改它,以便将环境变量用于下一个我运行的sbt命令。 例如,我希望能够做类似的事情(在sbt shell中): 这可能吗?如果是的话,我该

  • 问题内容: 如何从Java设置环境变量?我看到我可以使用来对子流程执行此操作ProcessBuilder。不过,我有几个子流程要启动,所以我宁愿修改当前流程的环境,并让这些子流程继承它。 有一个获取单个环境变量的方法。我还可以使用获取Map完整的环境变量集。但是,调用put()该方法Map将引发-显然,这意味着该环境是只读的。而且,没有。 那么,有什么方法可以在当前运行的进程中设置环境变量?如果是