擅长:python、mysql、java
<p>不要让shell负责将您的命令分解为多个进程并通过管道传输,而是自己执行。请参阅<a href="https://stackoverflow.com/a/4846923/1219585">here</a>如何将一个子流程流管道到另一个子流程。在</p>
<p>这样,您就可以查找每个步骤的输出(例如,通过将stdout路由到stdout,只是为了调试)并确定整个工作流是否正常。在</p>
<p>看起来有点像这样:</p>
<pre><code>mail_process = subprocess.Popen('mailq', stdin=PIPE, stdout=PIPE, stderr=STDOUT)
grep_process = subprocess.Popen(['grep', '\"^[A-F0-9]"'], stdin=mail_process.stdout, stdout=PIPE, stderr=STDOUT]
...
head_process = subprocess.Popen(["head", ...], ...)
head_process.communicate()[0]
</code></pre>