我尝试使用Popen创建子进程。这里是我的代码在第一次:Python - 在Popen中使用列表作为命令
hostname = 'host'
servername = 'server'
commandargs = ['/usr/sbin/mminfo',' -o n',' -s',servername,' -q "client=\'',hostname,'\',savetime>=last day"',' -r "client,name"']
process = subprocess.Popen(commandargs, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
的问题是执行命令的消息失败,该联系的服务器不可用。似乎变量主机名不被使用... 尝试使用一个字符串,而不是一个列表,作为Popen命令(壳牌= True),一切工作正常。
有人知道代码有什么问题吗?
问候。 Stefan
不要引用主机名,没有必要。有效的主机名不包含任何可能会扩展为奇怪的字符,也不会有空格。你应该做的另一件事是让命令中的每个实体分开,不要做'-o n',而是'-o','n'等。 – synthesizerpatel 2012-01-05 14:09:03
hostname ='host' 你的意思是说^ ?这是我用测试主机名填充变量的测试。 – StefanS 2012-01-05 14:14:47