Ist es möglich, die Umgebung von einem Makefile zu aktualisieren? Ich möchte in der Lage sein, ein Ziel zu erstellen, um die Client-Umgebungsvariablen für sie festzulegen. Etwas wie folgt aus:Kann ein Makefile die aufrufende Umgebung aktualisieren?
AXIS2_HOME ?= /usr/local/axis2-1.4.1
JAVA_HOME ?= /usr/java/latest
CLASSPATH := foo foo
setenv:
export AXIS2_HOME
export JAVA_HOME
export CLASSPATH
Damit kann der Kunde einfach tun:
make setenv all
java MainClass
und nutzen, ohne sie zu benötigen den Klassenpfad für die Java-Ausführung selbst zu setzen.
Oder suche ich das falsch und es gibt einen besseren Weg?
Alternativ können Sie die letzte Zeile ('java MainClass') weglassen und dann Ihren Benutzern sagen, dass * source * das Skript genau für Ihre Situation der Einstellung von Umgebungsvariablen im Haupt-Shell-Prozess bestimmt ist. – JasonSmith
Trivia: .BAT- und .CMD-Dateien in Windows werden in derselben Instanz von CMD.EXE verarbeitet, die interaktive Befehle fordert und ausführt. Dies entspricht dem Quellbefehl in csh oder dem. Befehl in sh. – RBerteig