以下命令可以在CLI中正常使用:
当我将相同的命令传递给 subprocess 时,如果 shell=False,我会收到以下错误信息:
对我来说,当shell为False时,整个命令似乎被视为一个路径,但我不明白为什么subprocess认为在shell=True时存在语法错误。
我该如何从Python中使此命令工作?
bash <(curl -Ls https://coverage.codacy.com/get.sh) report -r /path/coverage.xml
当我将相同的命令传递给 subprocess 时,如果 shell=False,我会收到以下错误信息:
FileNotFoundError: [Errno 2] No such file or directory: 'bash <(curl -Ls https://coverage.codacy.com/get.sh) report -r /path/coverage.xml'
当使用shell=True时,我收到了这个错误:
/bin/sh: -c: line 0: syntax error near unexpected token `('
对我来说,当shell为False时,整个命令似乎被视为一个路径,但我不明白为什么subprocess认为在shell=True时存在语法错误。
我该如何从Python中使此命令工作?
/bin/sh
,它需要是一个符合POSIX标准的shell(显然在您的系统上实际上是以POSIX模式运行的bash)。进程替换是ksh/bash扩展,它不是有效的POSIX。 - dave_thompson_085shell=True
的情况下获得相同的效果。 - Charles Duffy