Der Quellbefehl funktioniert nicht, wenn er in einem Shell-Skript verwendet wird.

Der Quellbefehl funktioniert nicht, wenn er in einem Shell-Skript verwendet wird.

Ich verwende ein Installationsprogramm, das der Datei eine Umgebungsvariable hinzufügt ~/.bash_profile.

Wenn ich den Jetty-Server starte, kann er diesen Eintrag nicht finden ...

Wenn ich laufe

$ source ~/.bash_profile

Es lädt die ~/.bash profileDatei neu und der Server startet erfolgreich und ohne Probleme.

Das Problem besteht darin, dass mein Kunde weder eine neue Shell-Sitzung startet noch die ~/.bash_profileDatei manuell aktualisiert.

Ich habe versucht, den Befehl in ein Shell-Skript einzufügen source ~/.bash_profile, das ich aufrufe, wenn ich das Startskript des Jetty-Servers aufrufe, aber das funktioniert auch nicht.

Gibt es eine andere Möglichkeit, die aktuelle Sitzung neu zu laden ~/.bash_profile? Ich wäre Ihnen für alle Informationen, die Sie mir geben können, sehr dankbar.

Antwort1

Ein Shell-Skript wird normalerweise nicht von Bash ausgeführt (außer wenn Sie dies ausdrücklich veranlassen).

Beachten Sie, dass /bin/sh auf vielen Linux-Systemen jetzt ist dashund da sourcees sich um einen nicht standardmäßigen Shell-Befehl handelt, der von importiert wurde csh, wird er von einer Shell wie Dash nicht unterstützt.

Der in POSIX definierte Punktbefehl ( .) sollte funktionieren, solange der übergebene Dateiparameter keine nicht standardmäßigen Erweiterungen enthält.

verwandte Informationen