擅长:python、mysql、java
<p><code>shell=True</code>仅当您执行以下操作时才需要</p>
<pre><code>subprocess.run("/path/to/sh /path/to/file1 /path/to/file2", shell=True)
</code></pre>
<p>shell将单个字符串拆分为参数,这些参数将标识为程序名及其参数。但是您已经<em>识别了</em>程序名及其参数,所以</p>
<pre><code>subprocess.run(['/path/to/sh', '/path/to/file1', '/path/to/file2'])
</code></pre>
<p>这就是你所需要的</p>
<hr/>
<p>通过使用列表<em>和</em><code>shell=True</code>,本质上就是要求Python执行</p>
<pre><code>sh -c /path/to/sh /path/to/file1 /path/to/file2
</code></pre>
<p>它使用<code>/path/to/file1</code>在要执行的命令中设置<code>$0</code>的值,而不是<code>$1</code></p>