2012-02-02 68 views
3

我试图运行Python脚本,我需要从脚本RSH命令上RSH,我要运行的命令是:df -Pk|grep "sd\|md"|gawk '{print $2}'运行命令使用远程计算机

和我做得一样 -

cmd2='df -Pk|grep \\\"sd\|md\\\"|gawk \'{print $2}\'' 
process = subprocess.Popen(['rsh',ip,cmd2],stdout=subprocess.PIPE) 
output = process.communicate()[0] 

但是当我运行脚本时,输出中什么都没有。

我是新来的python,据我所知,它是一个转义字符的问题。

任何帮助将是伟大的。

注: 我只使用rsh和不能使用ssh

感谢

+0

难道你不会错过一个反斜杠以逃脱之后sd – Sid 2012-02-02 21:22:10

+0

你有没有试过使用一个更简单的命令,如ls来验证通信?你尝试过在本地执行df/grep命令吗? – 2012-02-02 21:23:59

+0

@Sid对不起,这是一个错字。 – sudologin 2012-02-02 21:33:06

回答

0

括起来的命令,在适当的shell引用,在三重引号:

"""df -Pk|grep "sd\|md"|gawk '{print $2}'""" 

又见Python教程bit on strings

+0

@ jdi:你在'|'之前移除了'\',这改变了'grep' RE的含义。 – 2012-02-02 21:25:22

+0

撤回哈哈。我只是在想自己的字符串格式,忘了考虑子进程:-) – jdi 2012-02-02 21:26:25

+0

@larsmans感谢您的链接。然而,三重报价没有帮助。 – sudologin 2012-02-02 21:41:31

相关问题