![Variablen aus ~/.bash.rc beziehen und über Abmeldungen hinweg beibehalten](https://rvso.com/image/1288691/Variablen%20aus%20~%2F.bash.rc%20beziehen%20und%20%C3%BCber%20Abmeldungen%20hinweg%20beibehalten.png)
Ich habe eine Reihe von Bash-Skripten geschrieben, um nicht-interaktive, sichere, cron-basierte SVN-Checkouts mit dem SVN-Client von CollabNet und dem GNOME Keyring Daemon (auch bekannt als GKD) zu ermöglichen. Eines der Skripte wurde entwickelt, um GKD zu starten, seine Ausgabe, im Wesentlichen ein paar Umgebungsvariablen, zu sammeln und diese Variablen in die Shell eines Benutzers zu exportieren, unter dessen Namen das Skript ausgeführt wird. Alles nach der Benutzeranmeldung durch Einholen eines Bash-Skripts in ~/.bashrc.
Das Problem besteht darin, dass diese Umgebungsvariablen nicht exportiert werden, da das Skript in einer Unter-Shell ausgeführt wird, die nach Abschluss beendet wird, und die Umgebungsvariablen endgültig gelöscht werden.
Die Frage ist nun, wie diese Variablen dauerhaft festgelegt werden können, d. h. wie sie exportiert und auch bei Login- und Logout-Sitzungen unverändert bleiben?
Antwort1
Geben Sie die Variable einfach an ein anderes Shell-Skript in Ihrem Home-Verzeichnis (oder anderswo) weiter, das mit . beginnt (sodass es in der Standard-LS-Ansicht unsichtbar ist). Ändern Sie Ihre .bashrc so, dass beim Start dieses Shell-Skript ausgeführt wird.
Beispiel:
foo='What the heck'; echo "foo='$foo'" > ~/.startup.sh
Fügen Sie dies dann in ~/.bashrc ein und fertig:
. ~/.startup.sh