0

CentOS で Python 2.7 を使用して bash シェルを開くことができません。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/shbash で提供

そのため、CentOS ではexecutable=/bin/bashまったく尊重されていません。何か不足していますか?

4

1 に答える 1

0

引数に /bin/bash と書いたら?

Popen(['/bin/bash', '-c', 'cat <(%s)' % cmd])
于 2012-11-22T11:50:57.487 に答える