Warum gibt die Umgebungsvariable in Linux nichts zurück?

Warum gibt die Umgebungsvariable in Linux nichts zurück?

Um in Windows eine neue Variable = Wert festzulegen, können wir sie einfach zur Umgebungsvariable hinzufügen. In Linux sieht das jedoch etwas kompliziert aus. Dies ist das Verfahren, das ich befolgt habe:

Öffnen Sie Terminal und schreiben Sie:

vim ~/.bashrc  

Drücken Sie anschließend auf der Tastatur „i“ und definieren Sie die Variable wie folgt:

Test_MyVariable='Tessst'
export Test_MyVariable
PATH=$PATH:Test_MyVariable/bin

Dann:wq

nach $echo sehe ich die Variable:

echo $Test_MyVariable 

und es gibt zurück:

Tesst

aber in meinem erhabenen Text gibt es „None“ zurück.

import os
new_v= os.environ.get('Test_MyVariable')
print(new_v)

Keiner

Ich habe sogar alle verfügbaren os.environ geprüft, kann aber meine nicht finden Test_MyVariable. Außerdem habe ich es auch mit ~/.bash_profileund versucht ~/.profileund ihnen eine Variable hinzugefügt, aber das gleiche Ergebnis. Können Sie mir bitte sagen, was ich falsch mache?

Antwort1

Wenn Sie eine Variable in definieren ~/.bashrc, ist diese Variable vorhanden, sobald ~/.bashrcsie „gesourced“ (gelesen) wird. Dies geschieht nur, wenn Sie eine neue Shell starten (z. B. wenn Sie ein neues Terminal öffnen).

Wenn Sie also die neue Zeile zu Ihrer .bashrcDatei hinzufügen, müssen Sie ein neues Terminal öffnen und dort Ihr Python-Skript ausführen. Alternativ können Sie source ~/.bashrces in der aktuellen Shell ausführen.

Sie erwähnen Sublime, erklären aber nicht wirklich, warum das relevant ist. Ich gehe also davon aus, dass Sie Ihr Python-Skript irgendwie im Sublime-Editor ausführen. Vermutlich verfügt dieser über eine Art Shell-Emulator. Wenn dies der Fall ist, hängen die Details, wie und wo die Variable definiert wird, davon ab, wie Sublime seine Shell einrichtet. Versuchen Sie Folgendes:

  1. Schließen Sie einfach das Sublime-Fenster, öffnen Sie es erneut und prüfen Sie, ob Ihre Datei jetzt erneut gelesen wurde .bashrc.

  2. Es kann durchaus sein, dass Sublime .bashrcüberhaupt nicht liest. Wenn Sie Sublime über eine GUI-Schaltfläche ausführen, müssen Sie sich wahrscheinlich abmelden und erneut anmelden, bevor die Variablen erneut gelesen werden können.

  3. Versuchen Sie, ein neues Terminal zu öffnen und auszuführen sublime(oder wie auch immer der Befehlsname zum Starten von Sublime von der Befehlszeile lautet). Wird die Variable dann angezeigt?

verwandte Informationen