擅长:python、mysql、java
<p>它会因为JSON中的空格而中断。您可以通过引用将其作为单个参数传递:</p>
<pre><code>sudo python3 release.py "$json_str"
</code></pre>
<p>但是,如果无法更改CLI,则可以尝试在Python中重新创建:</p>
^{pr2}$
<p>。。。</p>
<pre><code>import sys
json_data = " ".join(sys.argv[1:])
print("JSON data: ", json_data)
# JSON data: {"ecommerce": "master","app_compat":"master"}
</code></pre>
<p>尽管要注意的是,您不能用这种方式解释所有的shell扩展,而且CLI并不是真正用于传递大型JSON类结构的,所以为什么不将它作为一个环境变量传递,例如在shell脚本中:</p>
<pre><code>#!/usr/bin/env bash
json_str='{"ecommerce": "master","app_compat":"master"}'
export $json_str
sudo python3 release.py
</code></pre>
<p>在Python脚本中:</p>
<pre><code>import os
json_data = os.environ["json_str"]
print("JSON data: ", json_data)
# JSON data: {"ecommerce": "master","app_compat":"master"}
</code></pre>