我无法在 CentOS 中使用 python 2.7 打开 bash shell,我可以在 python 2.6.6 Debian 中这样做。发生了什么变化?
我尝试了一个简单的 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
由 dash 提供。 - CenOS (Red Hat):Python 2.7,
/bin/sh
由 bash 提供
所以在 CentOS 中executable=/bin/bash
根本没有被尊重。我错过了什么吗?