/ サブプロセスで実行中のエラー/エラー - python、bash、shell

サブプロセスで実行中にエラーが発生しました - python、bash、shell

私はPythonコードを介してシェルコマンドを実行しようとしていますが、失敗する理由を理解することはできません。

コマンドを印刷してシェルに貼り付けて直接実行しようとすると、問題なく動作します。

Pythonから私は次のようになっています。

/bin/sh: -c: line 0: syntax error near unexpected token `("
/bin/sh: -c: line 0: `/DATA/NGS/ngs_software/bioinfoSoftware/bwa_current/bwa mem ... --threads 4 -T /tmp/samTemp -"

足りないものはありますか?コードは次のようになります。ここで、「cmd」はコマンドを含む文字列です。OSはbashシェルを持つCentOSです。

process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
out = process.stdout.readline()
out = out.decode("utf-8").strip("n")

回答:

回答№1は0

コマンドにプロセス置換が含まれていますが、 Popen を使用してコマンドを実行します /bin/sh。実行時 /bin/shしかし、 bash プロセス置換を許可しません。明示的にコマンドの実行を要求することができます bash を使用して executable オプション。

process = subprocess.Popen(cmd, shell=True, executable="/bin/bash", stdout=subprocess.PIPE)