【问题标题】:Environment variables from .bashrc not being loaded when sourced from terraform script来自 terraform 脚本的 .bashrc 环境变量未加载
【发布时间】:2017-02-14 17:18:48
【问题描述】:

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

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

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

source ~/.bashrc

作为第一行,但 .bashrc 中定义的变量仍未设置。

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

【问题讨论】:

  • 你的.bashrc 有类似[ -z "$PS1" ] && return # If not running interactively, don't do anything 的东西吗
  • 确实有类似的东西。谢谢!如果您想将其作为答案,我会接受。

标签: linux bash terraform


【解决方案1】:

很多时候,~/.bashrc 会检查以确保这些设置仅适用于交互式环境。至少这个检查在 Ubuntu 中是默认存在的。

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

在脚本中,您不会设置PS1

因此,请从您的 ~/.bashrc 中删除/评论该行;

或像这样获取脚本:

PS1=non-empty source ~/.bashrc

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 2015-09-16
    • 1970-01-01
    • 2016-09-05
    • 2021-06-20
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多