2016-10-06 26 views
0

から発信時にロードされていない、私はそうのようなEC2インスタンス上でテラフォームで実行されているスクリプトを持っている:環境変数テラフォームスクリプト

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

を、私はこのの.bashrcの中で定義されたいくつかの環境変数を持っています私はこのスクリプトにアクセスしたいと思っています。しかし、そのスクリプト内の私は、最初の行として

source ~/.bashrc 

を置くが、.bashrcの中で定義された変数は、まだ未設定でした。

.bashrcのソースを正しく設定するにはどうすればよいですか?

+0

は、あなたの '.bashrc'は' [-z "$ PS1"]のようなものを持っていないが#を返す&&、anything' – anishsane

+0

をしませんそれに似た何かが実際そこにありました。ありがとう!それを答えにしたいなら、私はそれを受け入れます。 –

答えて

1

何度も、~/.bashrcには、設定が対話的な環境でのみ適用されることを確認するチェックがあります。少なくともこのチェックはUbuntuにデフォルトで存在します。

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

スクリプト内では、PS1は設定されません。

したがって、あなたの~/.bashrcからその行を削除/コメントするか、

またはこのようなスクリプト出典:対話的に実行していない場合は

PS1=non-empty source ~/.bashrc