Ich habe eine Datei env.sh erstellt, deren Inhalt unten aufgeführt ist
#!/bin/sh
export M2_HOME=/vagrant/tools/maven
export PATH=$PATH:$M2_HOME/bin
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_65
export ANT_HOME=/usr/local/apache-ant-1.9.7
export MAVEN_HOME=$M2_HOME
aber das Ausführen dieser SH-Datei führt nicht dazu, dass Umgebungsvariablen exportiert werden. Sie müssen jede Zeile manuell ausführen, um sie zu exportieren. Bitte helfen Sie
Antwort1
Sie müssen die Datei source
( .
) bearbeiten, nicht ausführen:
. env.sh
Wenn Sie das Skript ausführen, wird es in einer Unter-Shell ausgeführt und alle exportierten Parameter verlassen den Gültigkeitsbereich, sobald die (Unter-)Shell beendet wird, ohne Auswirkungen auf die übergeordnete Shell.
Wenn Sie source
dies tun, sind die Parameter in der aufrufenden Sitzung verfügbar. Und auch in den untergeordneten Prozessen, während Sie export
sie mit -ing versehen.
Beachten Sie, dass die Standard-System-Shell ( sh
) für Ubuntu dash
nicht ist bash
und als interaktive Shell gnome-terminal
gestartet wird bash
. Stellen Sie während der Ausführung sicher, dass das Shebang korrekt und das gewünschte ist. Auch bei source
-ing ist das Shebang nicht erforderlich, Sie können es weglassen.