Ich habe ein Skript erstellt, um Terraform auf meinen Server herunterzuladen und zu installieren.Exportieren einer Pfadvariablen in einem Shell-Skript
#!/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
Dieser Code funktioniert einwandfrei. Aber sobald das Skript abgeschlossen ist und kommt, ist die .bash_profile
Datei wieder in ihrem ursprünglichen Zustand. die Pfadvariable wird nicht aktualisiert.
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
wenn ich terraform --version
außerhalb des Shell-Skript gebe es nicht gut funktioniert. Wenn ich su -
gebe und dann terraform --version
versuche, funktioniert es gut.
Gibt es irgendwelche Arbeit dafür oder automatisiertes Skript für die Aktualisierung der .bash_profile
. Ich möchte meine Sitzung nicht jedes Mal neu starten, wenn ich die .bash_profile
aktualisiere?
Sie sagen, dass es nicht funktioniert hat, wenn Sie nicht als root sind, aber es ist, wenn Sie als root angemeldet sind? Weil das durch das Profil, das du bearbeitet hast, ziemlich offensichtlich ist. – ydaetskcoR
In welcher Umgebung starten Sie Ihr Skript? Ist es root-only? Nicht in einem Cron-Job? Fängst du es als normaler Benutzer an? Denken Sie daran, dass Sie bei '>>' immer die Export-Zeile in die Datei einfügen. – ferdy
Funktioniert nicht, wenn ich nur als Root-Benutzer angemeldet bin. Nein, es ist kein Cron Job. Dieses Skript wird immer nur als Root-Benutzer ausgeführt. – sriramsm04