2017-07-26 21 views
-1

我調試名爲test.py因爲這python程序:如何在python中輸入字符串作爲argv?

#!/bin/env python 
import sys 
print sys.argv[1] 

當我輸入這個命令,結果是迷惑:

[[email protected] ~]# python test.py "{"execute": "guest-execute", "session": "4768", "arguments": {"commands": [{"command": "/bin/sh", "arguments": ["sh", "-c", "ping -c 1 8.8.8.8"]}]}}" 

結果是:

{execute: guest-execute, session: 4768, arguments: {commands: [{command: /bin/sh, arguments: [sh, -c, ping 

我期望的應該是:

{"execute": "guest-execute", "session": "4768", "arguments": {"commands": [{"command": "/bin/sh", "arguments": ["sh", "-c", "ping -c 1 8.8.8.8"]}]}} 

如何解決這個問題?我的程序中是否有錯或者程序中有什麼問題?謝謝〜

回答

2

它實際上是你的是這裏沒有你的殼:)

你應該做的是使用不同的報價或逃脫他們的理解。

嘗試此情況下(注意周圍的JSON單引號):

[[email protected] ~]# python test.py '{"execute": "guest-execute", "session": "4768", "arguments": {"commands": [{"command": "/bin/sh", "arguments": ["sh", "-c", "ping -c 1 8.8.8.8"]}]}}' 

但它可能會取決於什麼殼您正在使用。

相關問題