2017-07-26 14 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"]}]}}' 

但它可能会取决于什么壳您正在使用。

相关问题