Terraformをサーバーにダウンロードしてインストールするスクリプトを作成しました。シェルスクリプト内でのパス変数のエクスポート
#!/bin/bash
wget https://releases.hashicorp.com/terraform/0.7.0/terraform_0.7.0_linux_amd64.zip
unzip terraform_0.7.0_linux_amd64.zip
echo "export PATH=$PATH:/root/terraform_dir" >> /root/.bash_profile
source /root/.bash_profile
terraform --version
このコードは完全に動作しています。しかし、スクリプトが完成して出てくると、.bash_profile
ファイルは元の状態に戻ります。すなわち、パス変数は更新されない。
私がterraform --version
をシェルスクリプトの外に出すと、正常に動作しません。
しかし、私はsu -
を与えてから、terraform --version
を試してみると実際にうまくいきます。
.bash_profile
を更新するための回避策または自動スクリプトがありますか。 .bash_profile
を更新するたびにセッションを再開したくありませんか?
を言っていますか?これはあなたが編集したプロファイルによってかなり明白です。 – ydaetskcoR
スクリプトを起動する環境は?それはroot-onlyですか? cronの仕事ではない?通常のユーザーとして起動しますか?あなたはいつもファイルにエクスポート行を追加することを覚えておいてください。 – ferdy
私がrootユーザーとしてのみログインしているときには動作しません。 いいえ、cronジョブではありません。 このスクリプトは常にrootユーザーとしてのみ実行されます。 – sriramsm04