擅长:python、mysql、java
<p>正如您可能怀疑的那样,似乎您只对<code>https-tcp-session.txt</code>文件中的第一个命令运行<code>time</code>。Python REPL中的代码将向<code>bash</code>(或您使用的任何shell)发送如下内容:</p>
<pre class="lang-sh prettyprint-override"><code>/usr/bin/time -f "%e" rm -f /tmp/A.raw /tmp/B.raw /tmp/result.raw; \
rwfilter sport=443 proto=6 pass=stdout %s | \
rwsort fields=sIP,dIP | \
# rest omitted
</code></pre>
<p>第一行末尾的分号结束命令,因此shell只在<code>rm</code>上运行<code>time</code>。在</p>
<p>一种可能的解决方法是将命令块包装在<a href="http://www.gnu.org/software/bash/manual/bashref.html#Command-Grouping" rel="nofollow">group</a>中。这样,<code>time</code>作为一个整体在组上运行。在</p>
<p>或者,您可以使用<a href="http://www.gnu.org/software/bash/manual/bashref.html#Positional-Parameters" rel="nofollow">positional parameters</a>。您可以将<code>https-tcp-session.txt</code>命令中的<code>%s</code>符号替换为<code>$1</code>,该<code>bash</code>将其解释为第一个命令行参数。然后可以将<code>https-tcp-session.txt</code>作为shell脚本运行,传递要在<code>$1</code>中使用的值作为命令行参数,例如:</p>
^{2}$
<p>(请注意,我没有测试这两种方法。)</p>