我無法在CentOS中用python 2.7打開bash shell,我可以在python 2.6.6 Debian中這樣做。什麼改變了?Python Popen無法在CentOS/Red Hat中打開bash shell
我想一個簡單的bash進程替換:
from subprocess import Popen
cmd="""cat <<'EOF'
this is
test $unchanged
EOF
"""
Popen('cat <(%s)' % cmd, shell=True, executable='/bin/bash')
在Debian的這部作品,在CentOS的它並不:
/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `cat <(cat <<'EOF''
的區別是:
- 的Debian:Python 2.6.6,
/bin/sh
由破折號提供。 - CenOS(紅帽):Python 2.7版,
/bin/sh
是bash的
所以在CentOS的的executable=/bin/bash
沒有被根本榮幸提供。 我錯過了什麼嗎?
嘗試將'cat <(%s)'%cmd'替換爲'cmd'。 – werehuman
@werehuman這是測試看bash是否正在啓動,'sh'可以做重定向,但不能處理替換,我需要一些不同的東西。 – estani
好的,如果你在參數中寫入/ bin/bash會怎樣? ''Popen(['/ bin/bash','-c','cat <(%s)'%cmd])'' – werehuman