4
我想用python子進程模塊使用subhells和重定向的魔力,但它似乎不起作用,抱怨意外的令牌是括號。例如,當傳遞到子命令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)'
公告你的錯誤來自'/ bin/sh'。我認爲這種語法只能在'bash'中使用。你想讓子進程運行'bash'嗎?這是個問題嗎? –
@ S.Lott我認爲在我的安裝中,sh是bash。當然,如果我做了「man sh」,那麼出現的man page就是bash。 Scott Lamb指出,當被調用爲'sh'時,這個功能是不可用的,所以從某種意義上說,是的,我希望它運行爲'bash',即使我認爲它已經是。 –
爲什麼當Python能夠做你想做的事情時,你會向殼體提出要求? –