[Gelöst] Temporär PATH-Variable in aktueller Bash mittels Shell ändern

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
hugediggs
Beiträge: 171
Registriert: 26.07.2012 22:40:23

[Gelöst] Temporär PATH-Variable in aktueller Bash mittels Shell ändern

Beitrag von hugediggs » 05.07.2017 17:33:56

Ein Programm liegt bei mir in zwei Versionen vor. Version A wurde via apt-get installiert, Version B liegt unter /opt. Gern würde ich ab und zu B laufen lassen, aber dafür muss die PATH-Variable angepasst werden.

Code: Alles auswählen

#!/bin/bash
JAVA_HOME=/opt/myprogramm/
PATH=$JAVA_HOME/bin:$PATH; export PATH
echo $PATH
Nachdem ich das Script in der Console ausgeführt habe, zeigt mir der echo-Befehl alles korrekt an, aber danach habe ich wieder die alte PATH-Umgebung.
Wichtig ist, dass die Umstellung des PATH nur auf Verlangen in einem bestimmten Terminal erfolgen soll (daher Script). Eine manuelle Pfadangabe scheidet aus, da andere Unterprogramme von B ebenfalls auf den PATH zugreifen.
Ich vermute, dass das Script und das Terminal ihren eigene Scope haben, jedoch fehlen mir die richtigen Stichwörter, um selbst Google bedienen zu können. Jemand Ideen?
Zuletzt geändert von hugediggs am 05.07.2017 20:54:55, insgesamt 1-mal geändert.

DeletedUserReAsG

Re: Temporär PATH-Variable in aktueller Bash mittels Shell ändern

Beitrag von DeletedUserReAsG » 05.07.2017 18:25:11

›export‹ mag ein passendes Wort für die Suche sein.

tobo
Beiträge: 2338
Registriert: 10.12.2008 10:51:41

Re: Temporär PATH-Variable in aktueller Bash mittels Shell ändern

Beitrag von tobo » 05.07.2017 18:47:25

Wenn PATH auch in der aktuellen Shell gelten soll, dann solltest du das Script "sourcen":

Code: Alles auswählen

. script.sh
oder

Code: Alles auswählen

source script.sh
Bei "$JAVA_HOME/bin" wäre wohl ein / zuviel.

Benutzeravatar
Meillo
Moderator
Beiträge: 9230
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Temporär PATH-Variable in aktueller Bash mittels Shell ändern

Beitrag von Meillo » 05.07.2017 19:52:39

tobo hat geschrieben: ↑ zum Beitrag ↑
05.07.2017 18:47:25
Wenn PATH auch in der aktuellen Shell gelten soll, dann solltest du das Script "sourcen":
Nicht nur solltest sondern musst. Ein Script laeuft naemlich in einer Subshell und aus der heraus kann man das Environment des Elternprozesses nicht veraendern.
Bei "$JAVA_HOME/bin" wäre wohl ein / zuviel.
Stimmt, ist aber egal. Man kann beliebig viele Slashes einfuegen.
Use ed once in a while!

hugediggs
Beiträge: 171
Registriert: 26.07.2012 22:40:23

Re: Temporär PATH-Variable in aktueller Bash mittels Shell ändern

Beitrag von hugediggs » 05.07.2017 20:54:38

tobo hat geschrieben: ↑ zum Beitrag ↑
05.07.2017 18:47:25
Wenn PATH auch in der aktuellen Shell gelten soll, dann solltest du das Script "sourcen":

Code: Alles auswählen

. script.sh
oder

Code: Alles auswählen

source script.sh
Bei "$JAVA_HOME/bin" wäre wohl ein / zuviel.
Der Tipp mit dem sourcen hat wunderbar funktioniert. Danke.

Antworten