擅长:python、mysql、java
<p>你的问题很简单,问题也很简单解决方案:。你知道吗</p>
<p>在<code>subprocess.Popen(...)</code>中,将调用更改为:</p>
<pre><code>subprocess.Popen("xfce4-terminal -e 'bash -c \"./README.package.creation -u %s\";sleep 10'" % (str(u_name)),shell=True)
</code></pre>
<p>收件人:</p>
<pre><code>subprocess.Popen("xfce4-terminal -e 'bash -c \"source ~/.bashrc; ./README.package.creation -u %s\";sleep 10'" % (str(u_name)),shell=True)
</code></pre>
<p>本质上,在调用包创建命令之前,您要求<code>bash</code>获取<code>.bashrc</code>文件的源代码。你知道吗</p>
<p>另一个例子:</p>
<pre><code>sgulati@precise:~$ cat /tmp/1.sh
export A=100
sgulati@precise:~$ python -c "import subprocess
print subprocess.Popen(['bash', '-c', 'source /tmp/1.sh; echo \$A'], stdout=subprocess.PIPE).stdout.read()"
100
</code></pre>
<p>在本例中,我在<code>/tmp/1.sh</code>中声明变量<code>A=100</code>,<code>source</code>然后执行<code>echo $A</code>。由于<code>source /tmp/1.sh</code>,在执行<code>echo $A</code>时<code>A</code>的值是已知的。你知道吗</p>
<p>请注意,我在示例中使用的语法是来自<code>python 2.7.3</code>的语法,但是无论您如何处理,这个概念都非常相同。你知道吗</p>