У меня есть файл (myenv.sh
) со следующим содержаниемPython и окружающая среда
export MYVAR="HELLO"
И тогда у меня есть программа (myhugeprogram.py
):
#!/usr/bin/env python
import os
print os.environ['MYVAR']
Что является исполняемым: chmod 755 myhugeprogram.py
Теперь я исхожу из окружающей среды: source myenv.sh
и запустить мою программу:
./myhugeprogram.py
HELLO
Как и следовало ожидать. Теперь я запускаю его неинтерактивно через SSH:
[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'
что является нормальным, потому что я не получены myenv.sh
. Теперь встает вопрос:
Как я могу создать файл Bash, который устанавливает некоторые переменные среды перед выполнением моего скрипта Python при запуске не-интерактивного с помощью SSH?