Wie können wir einen Befehl "Source Bash_profile" außerhalb eines Ruby -Skripts bestehen?

StackOverflow https://stackoverflow.com/questions/19850945

Frage

Was wir versuchen zu tun, ist anzurufen source bash_profile So laden Sie eine Bash_profile -Datei neu. Das Drehbuch schnappt sich die Bash_profile einer Person und lädt es auf den Computer einer Person. Das Problem ist, dass die source bash_profile Wird außerhalb des Ruby -Drehbuchs nicht bestehen. Nach dem Ende des Skripts sieht das Terminal genauso aus wie zuvor. Wie können wir es so machen source bash_profile Besteht außerhalb des Ruby -Drehbuchs?

Keine korrekte Lösung

Andere Tipps

Das bash_profile Verändert normalerweise die Bash -Umgebung (Installation von Funktionen, Aliase, Variablen, Readline -Bindungen usw.), und es gibt wirklich keine Möglichkeit, die Umgebung eines übergeordneten Bash -Prozesses zu ändern.

Das Beste, was Sie tun können, ist das Ruby -Skript von zu beenden execeine neue Bash, die die angeben -l (oder --login) Option, um es a zu machen Anmeldeschale so dass es mit der Beschaffung beginnt bash_profile. (Sie können dies auch tun, indem Sie den ersten Charakter des Arguments machen -, normalerweise durch Einstellen auf -bash.)

Wenn Sie die Kontrolle über die Art und Weise haben, wie das Ruby -Skript eingeleitet wird, können Sie es möglicherweise dazu bringen, es zu tun execEd, damit es den übergeordneten Bash -Prozess ersetzt. Das sorgt für einen saubereren Prozessbaum.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top