Я пытаюсь выполнить из сценария python3 команды Unix, которые выглядят так:
mycommand `cmd_giving_a_path`/file
Поэтому я использую функцию subprocess.Popen.Но что бы я ни пытался, подпроцесс не оценивает команду между обратными кавычками.Вот что я попробовал:
>>> subprocess.Popen(['echo', 'toto'])
<subprocess.Popen object at 0x2a98df1c50>
>>> toto
Хорошо!
subprocess.Popen(['echo', 'toto', '`ls`'])
<subprocess.Popen object at 0x2a98df1d50>
>>> toto `ls`
Хорошо тоже!
>>> subprocess.Popen(['echo', 'toto', '`ls`'], shell=True)
<subprocess.Popen object at 0x2a98df1d90>
Я не понимаю этого: у меня нет выводасовсем.С помощью этой команды я ожидал, что появится оболочка и получу команду:
echo toto `ls`
Но, очевидно, я ошибаюсь!
Может ли кто-нибудь помочь с этим?
СпасибоВы!
PS: Для тех, кто может спросить: «Зачем вам это нужно?»Ответ таков: параметры команд читаются из входного файла, который может содержать синтаксис такого типа.