I have a script being run with terraform on an EC2 instance like so:
provisioner "remote-exec" {
inline = [
"bash /path/to/myscript.sh
]
}
I have some environment variables defined in the .bashrc of this instance that I would like this script to have access to. However, inside that script I put,
source ~/.bashrc
as the first line, but the variables defined in .bashrc were still unset.
What do I need to do to successfully source .bashrc?
Advertisement
Answer
Many times, ~/.bashrc has a check to ensure that the settings are only applied in an interactive environment. At least this check is present by default in Ubuntu.
# If not running interactively, don't do anything [ -z "$PS1" ] && return
Within a script, you will not have PS1 set.
So, either remove/comment that line from your ~/.bashrc;
or source the script like this:
PS1=non-empty source ~/.bashrc