来自 .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
我有一个脚本 运行 在 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