Variabel lingkungan dari .bashrc tidak dimuat saat bersumber dari skrip terraform

Saya memiliki skrip yang dijalankan dengan terraform pada instance EC2 seperti:

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

Saya memiliki beberapa variabel lingkungan yang ditentukan dalam .bashrc contoh ini yang saya ingin skrip ini dapat aksesnya. Namun, di dalam skrip itu saya masukkan,

source ~/.bashrc

sebagai baris pertama, tetapi variabel yang ditentukan dalam .bashrc masih belum disetel.

Apa yang harus saya lakukan agar berhasil mendapatkan .bashrc?


person Davis Yoshida    schedule 06.10.2016    source sumber
comment
Apakah .bashrc Anda memiliki sesuatu seperti [ -z "$PS1" ] && return # If not running interactively, don't do anything   -  person anishsane    schedule 06.10.2016
comment
Sesuatu yang mirip dengan itu memang ada di sana. Terima kasih! Jika Anda ingin menjadikannya sebagai jawaban, saya akan menerimanya.   -  person Davis Yoshida    schedule 06.10.2016


Jawaban (1)


Sering kali, ~/.bashrc melakukan pemeriksaan untuk memastikan bahwa pengaturan hanya diterapkan dalam lingkungan interaktif. Setidaknya pemeriksaan ini ada secara default di Ubuntu.

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

Dalam skrip, Anda tidak akan menyetel PS1.

Jadi, hapus/komentari baris itu dari ~/.bashrc;

atau sumber skrip seperti ini:

PS1=non-empty source ~/.bashrc
person anishsane    schedule 06.10.2016