Я хочу запустить серию команд bash, сгенерированных скриптом Python. Команды имеют вид export foo="bar"
и alias foo=bar
. Они должны изменить среду текущего процесса.Выполнение сгенерированных команд в bash
Это прекрасно работает:
$(./generate_commands.py)
пока команда экспорта не содержит пробел, например, export x="a b"
. Это порождает ошибку, и экспортируется только "a
(включая кавычки).
В настоящее время я работаю над этим, выводя generate_commands во временный файл и источники, но есть ли более элегантное решение?
Можете ли вы показать, что вы делаете в точности? – MMM
Надеюсь, я поставил вопрос немного яснее. –
«Они должны изменить среду текущего процесса». Это не сработает. Если вы в настоящее время работаете в 'python', то, независимо от точного синтаксиса или метода этого, запуск' bash' для оценки генерируемых вами команд запустит отдельный процесс, который по определению не может влиять на переменные среды его родительского процесса. – twalberg