Python 2.7 - Quotes Added To Command When Using Popen To Execute From Variable
I'm trying to send a command through a socket from client to server to execute a command on the server and send the output back to me. Everything works fine if the command is one w
Solution 1:
Try make data an array of arguments (the first being the actual command).
For example:
commout = subprocess.Popen(['netstat', '-an'], stdout=subprocess.PIPE, shell=True)
The first element is a string representing the actual command (netstat), the next element is a string representing the first argument (-an).
To clarify, Popen(['echo', 'a', 'b'] is equivalent to echo a b on the command line, whereas Popen(['echo', 'a b'] would be equivalent to echo "a b" instead (ie. a single argument with a space between a and b.
Solution 2:
If you pass a list, each item in it will be quoted separately. In this case, just pass a string:
subprocess.Popen(data, stdout=subprocess.PIPE, shell=True)
Post a Comment for "Python 2.7 - Quotes Added To Command When Using Popen To Execute From Variable"