Я пытаюсь создать скрипт bash, содержащий некоторые переменные окружения в python. Я следовал за другим потоком, чтобы сделать это. Но, похоже, что одна из переменных имеет неправильный формат, как видно из данного фрагмента.
COLORTERM=gnome-terminal
mc=() { . /usr/share/mc/mc-wrapper.sh
}
_=/usr/bin/env
Я использую следующий код для настройки текущей среды.
import os
import pprint
import subprocess
command = ['bash', '-c', 'source init_env && env']
proc = subprocess.Popen(command, stdout = subprocess.PIPE)
for line in proc.stdout:
(key, _, value) = line.partition("=")
os.environ[key] = value
proc.communicate()
Если я изменю приведенный выше код, как если бы я поставил условие:
for line in proc.stdout:
(key, _, value) = line.partition("=")
if not value:
continue
os.environ[key] = value
тогда все работает, но среда повреждена из-за одной отсутствующей скобки, как видно из фрагмента переменной среды, который скобка появляется в новой строке. Из-за этого повреждения, если я запускаю какую-то другую команду, такую как
os.system("ls -l")
это дает мне следующую ошибку
sh: mc: line 1: syntax error: unexpected end of file
sh: error importing function definition for `mc'
Какими могут быть возможные решения этой проблемы?
Большое спасибо