如何在 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
(同样是文字字符串,不是命令的结果)仅适用于该命令执行的范围。
我有一个 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
(同样是文字字符串,不是命令的结果)仅适用于该命令执行的范围。