pyt*_*hor 5 python bash subprocess subshell
我想使用子shell的魔力和python子进程模块的重定向,但它似乎不起作用,抱怨意外的令牌是括号.例如,命令
cat <(head tmp)
传递给子进程时给出了这个
>>> subprocess.Popen("cat <(head tmp)", shell=True)
<subprocess.Popen object at 0x2b9bfef30350>
>>> /bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `cat <(head tmp)'
Run Code Online (Sandbox Code Playgroud)
Sco*_*amb 11
该<(head tmp)语法是一个bash名为"进程替换"功能.基本/便携式/bin/sh不支持它.(这是真实的,即使在系统中/bin/sh并且/bin/bash是相同的程序,它不允许此功能时调用纯/bin/sh这样你就不会无意中依赖于非便携功能.)
>>> subprocess.Popen(["/bin/bash", "-c", "cat <(head tmp)"])
<subprocess.Popen object at 0x1004cca50>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3168 次 |
| 最近记录: |