如何在 ECS FARGATE 容器上的 shell 脚本 运行 中获取环境变量?

How do I get environment variables in a shell script running on an ECS FARGATE container?

我有一个 ECS Fargate 实例(node-alpine base)运行 上面有一些环境变量(该实例独有)。

我可以在 python 脚本中访问它们,我在 运行 此处:

 // python_script.py
    name1 = os.environ['REACT_APP_TEAM_ONE_NAME']
    name2 = os.environ['REACT_APP_TEAM_TWO_NAME']

但是同一目录中的这个 shell 脚本找不到它们:

#!/bin/sh

TEAM_ONE_NAME=printenv REACT_APP_TEAM_ONE_NAME
TEAM_TWO_NAME=printenv REACT_APP_TEAM_TWO_NAME

shell 脚本的输出:REACT_APP_TEAM_ONE_NAME:未找到

我不确定这是 ECS 问题、shell 脚本问题还是其他问题,因为我没有太多使用这些技术。感谢您的帮助。

要在 shell 脚本中访问环境变量,请在其名称前放置一个美元符号 $,通常确保它位于 double-quoted 字符串中:

TEAM_ONE_NAME="$REACT_APP_TEAM_ONE_NAME"

Shell 变量和环境变量密切相关,您可能会发现直接在脚本中使用环境变量更容易。

The syntax you have attempts to 运行 REACT_APP_TEAM_ONE_NAME as a command(那个字符串,不是对应环境变量的值),设置环境变量TEAM_ONE_NAME为值printenv(同样是文字字符串,不是命令的结果)仅适用于该命令执行的范围。