来自 .bashrc 的环境变量在从 terraform 脚本获取时未加载

Environment variables from .bashrc not being loaded when sourced from terraform script

我有一个脚本 运行 在 EC2 实例上使用 terraform,如下所示:

provisioner "remote-exec" {
  inline = [
    "bash /path/to/myscript.sh
  ]
}

我在这个实例的 .bashrc 中定义了一些环境变量,我希望这个脚本能够访问它们。但是,在我放入的那个脚本中,

source ~/.bashrc

和第一行一样,但是.bashrc中定义的变量还没有设置。

我需要做什么才能成功获取 .bashrc?

很多时候,~/.bashrc 会进行检查以确保设置仅适用于交互式环境。至少此检查默认存在于 Ubuntu.

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

在脚本中,您不会设置 PS1

因此,remove/comment 来自您 ~/.bashrc 的那一行;

或像这样获取脚本:

PS1=non-empty source ~/.bashrc