Ich habe einige Proxy-Einstellungen, die ich nur gelegentlich einschalten will, so will ich nicht, sie in meinem ~/.bash_profile
setzen. Ich versuchte, sich direkt in ~/bin/set_proxy_env.sh
setzen, und fügte hinzu ~/bin
meine PATH
und chmod +x
das Skript ing aber wenn das Skript ausgeführt wird, die Variablen kleben nicht in meiner Schale. Weiß jemand, wie man sie für den Rest der Shell-Sitzung hält?Wie setze ich Bash-Umgebungsvariablen aus einem Skript?
Antwort
Verwenden eines von:
source <file>
. <file>
Im Skript verwenden
export varname=value
und führen auch das Skript mit:
source set_proxy_env.sh
.
Das Schlüsselwort export
sorgt die Variable für die automatische Aufnahme in der Umgebung der anschließend ausgeführten Befehle markiert. Mit source
ein Skript auszuführen beginnt es mit der vorliegenden Schale stattdessen einen temporären für das Skript von starten.
Ich hatte das 'export'; Es war die Quelle, die ich vermisste. –
Sie dies versuchen Haben:
. ~/bin/set_proxy_env.sh
es von selbst laufen öffnet sich ein separates Sub-Shell (glaube ich) und setzt die dort variabel. Aber dann ist die Bindung verloren, nachdem Sie in Ihre Shell zurückgekehrt sind. Der Punkt auf der Vorderseite sagt ihm, dass er innerhalb derselben Shell laufen soll.
Auch vergessen Sie nicht zu export
die Variablen, die Sie wie so brauchen: export MYVAR=value
Es ist nicht notwendig, jede Variable zu exportieren. Nur diejenigen, die für untergeordnete Prozesse sichtbar sein müssen. –
Ah ja, das ist was ich meinte :) –
dass Herr, ist Geld in der Bank – tofutim