我在Python 3.5中运行了这个:
import subprocess
subprocess.run(
'some_command --option <(zcat some_file_1.gz) <(zcat some_file_2.gz)',
shell=True
)
收到此错误:
/bin/sh: -c: line 0: syntax error near unexpected token `('
任何帮助将不胜感激!
使用
<(...)
的过程替换在 POSIX 中没有定义。 你应该使用像 bash 这样的东西。您可以传递executable="/bin/bash"
以使用 bash 运行命令。
subprocess.run('cat <(echo hoo)', shell=True, executable="/bin/bash")
调用的默认 shell 是/bin/sh
的,它不支持进程替换(<(...)
语法),这是一个 Bash 功能。