2012-02-02 67 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

相關問題