title: Why execv omit first argument?
body: <p><strong>test.sh:</strong></p>
  <pre><code>#!/bin/bash
  echo $1
  echo $2
  </code></pre>
  <p>Execution:</p>
  <pre><code>$ ./test.sh 1 2
  1
  2
  </code></pre>
  <p><strong>test.py:</strong></p>
  <pre><code>import os
  os.execv(&quot;./test.sh&quot;, [&quot;1&quot;, &quot;2&quot;])
  </code></pre>
  <p>Execution:</p>
  <pre><code>$ python test.py
  2
  
  </code></pre>
  <p>You can see run <code>test.sh</code> could successfully print <code>1 2</code>, while if I use <code>python execv</code>, the first argument <code>1</code> was omit, why? What's the proper way to use this?</p>