Как я могу выполнить команду оболочки, может быть сложной, как обычная команда в командной строке bash, получить вывод этой команды и pwd после выполнения?
Я использовал такую функцию:
import subprocess as sub
def execv(command, path):
p = sub.Popen(['/bin/bash', '-c', command],
stdout=sub.PIPE, stderr=sub.STDOUT, cwd=path)
return p.stdout.read()[:-1]
И я проверяю, использует ли пользователь команду cd
, но это не сработает, когда пользователь использует символическую ссылку на компакт-диск или другой странный способ изменить каталог.
и мне нужен словарь, который содержит {'cwd': '<NEW PATH>', 'result': '<COMMAND OUTPUT>'}