擅长:python、mysql、java
<p>如果我没看错,您需要grep获取<code>ptrn</code>Python变量的内容,因此需要将其传递给grep,而不是它的名称,这在上下文中没有任何意义。在</p>
<pre><code>#!/usr/bin/env python
import subprocess
from pipes import quote
BuildServer = "1.2.3.4" # you pass it as a string to ssh
ptrn = "abc"
cmd="ls -ltrd /export/home| grep " + quote(ptrn) # Don't forget the space after grep.
ssh = subprocess.Popen(["ssh", "%s" % BuildServer, cmd], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
print ssh.communicate()[0]
</code></pre>
<p>至于<code>quote</code>,<a href="https://stackoverflow.com/a/25147580/469220">this</a>answer提到它引用shell参数,因此{<cd3>}将其视为单个参数。在</p>
<p><a href="https://docs.python.org/2/library/subprocess.html#subprocess.Popen.communicate" rel="nofollow noreferrer">^{<cd4>}</a>从进程中读取输出并等待它结束。在</p>