【发布时间】:2023-03-06 00:47:02
【问题描述】:
在 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/bash。 -
感谢伊坦!我添加了 executable='/bin/bash' 并且它起作用了!你会留下答案吗?
-
你尝试过 os.system('paste ..?
-
Olu,那个也失败了。子流程文档中写道:“这个模块打算替换几个旧模块和功能:os.system”
标签: python shell python-3.x subprocess io-redirection