Использование «<<<» с модулем подпроцесса - PullRequest
0 голосов
/ 23 января 2019

Я столкнулся с проблемой использования модуля подпроцесса в Python 2.7.Проблема в том, когда я пытаюсь использовать <<< в моей команде. </p>

Вот упрощенный пример:

#!/usr/bin/python
import subprocess

command="cat <<< 'hi there'"
print subprocess.check_output(command.split(" "))

И результаты:

cat: '<<<': Aucun fichier ou dossier de ce type
cat: "'hi": Aucun fichier ou dossier de ce type
cat: "there'": Aucun fichier ou dossier de ce type
Traceback (most recent call last):
  File "test.py", line 6, in <module>
    print subprocess.check_output(command.split(" "))
  File "/usr/lib/python2.7/subprocess.py", line 219, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['cat', '<<<', "'hi", "there'"]' returned non-zero exit status 1

Iзапутался по поводу этого результата.Почему у подпроцесса возникают проблемы, когда я пытаюсь использовать <<<?Все мои команды bash работают, кроме случаев, когда я использую «<<<»: / </p>

1 Ответ

0 голосов
/ 23 января 2019

Оператор <<< является конструкцией bash.Вы не используете bash в команде, поэтому она не будет работать.Попробуйте добавить shell=True.

Кроме того, если вы разделите свою команду на пробелы, вы получите довольно странные параметры (проверьте сообщение об ошибке).Если строка должна интерпретироваться bash, не связывайтесь с ней:

#!/usr/bin/python
import subprocess

command="cat <<< 'hi there'"
print subprocess.check_output(command, shell=True, executable="/bin/bash")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...