在 unix 命令行上我可以做:
paste <(echo A) <(echo B)
但是,当我尝试这样做时:
import subprocess
subprocess.call('paste <(echo A) <(echo B)', shell = True)
我收到这个错误:
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `paste <(echo A) <(echo B)'
是否不能使用子进程模块进行 shell 输入重定向?
最佳答案
许多东西默认使用 /bin/sh
作为选择的 shell。 /bin/sh
通常不是 bash。
您系统上的 /bin/sh
很可能不支持进程替换。
说服 subprocess.call
使用 /bin/bash
作为 shell,它应该可以工作。
关于Python 子进程和 shell 输入重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25911325/