ich eine Datei haben (myenv.sh
) mit folgendem InhaltPython und die Umwelt
export MYVAR="HELLO"
Und dann habe ich mein Programm (myhugeprogram.py
):
#!/usr/bin/env python
import os
print os.environ['MYVAR']
Welche ausführbar ist: chmod 755 myhugeprogram.py
Jetzt quelle ich meine Umgebung: source myenv.sh
Und mein Programm laufen:
./myhugeprogram.py
HELLO
Wie erwartet. Jetzt habe ich es nicht interaktiv über SSH ausführen:
[email protected]:~$ ssh [email protected] ./myhugeprogram.py
Traceback (most recent call last):
File "./myhugeprogram.py", line 3, in <module>
print os.environ['MYVAR']
File "/usr/lib/python2.5/UserDict.py", line 22, in __getitem__
raise KeyError(key)
KeyError: 'MYVAR'
was normal ist, weil ich nicht myenv.sh
bezogen haben. Jetzt die Frage:
Wie erstelle ich eine Bash-Datei, die einige Umgebungsvariablen setzt, bevor ich mein Python-Skript ausführe, wenn ich nicht-interaktiv über SSH laufe?