我想將Bash腳本轉換爲Python進行培訓。在bash腳本通過ssh查詢其DF遠程主機和搜索特定的字段返回的行,像這樣:在Python中搜索線條
ssh $_host df 2>/dev/null | grep -i $_filesystem | grep :
在Python中,我結合使用subprocess.call
與shlex.split
獲得「DF」輸出:
_cmd = shlex.split("ssh %s df 2>/dev/null" % _host)
_test = subprocess.check_output(_cmd)
這裏,_test收益類型字符串,如果我想搜索這行線,它打印出的每個字符作爲新行。 subprocess.Popen
對於管道也不起作用。我想要做的就是打印出找到我的搜索字符串的行,以便進一步格式化。
我已經看到了幾個接近解決方案的嘗試,但其中大多數嘗試通過具有已定義的回車符的文件進行迭代,而不是通過子進程調用返回的字符串。
Bash是一個特定領域的語言,專門設計用於與進程交互。 Python是一種能夠做任何事情的通用語言。我希望看到你在shell腳本中編寫一個web服務器。 –
感謝您澄清,儘管它根本沒有幫助。 –
「正確」的做法是導入可以處理'ssh'的東西。我推薦'fabric'(google:「python fabric」)。目前你只是從python調用ssh可執行文件,而不是如何做(通常)。鑑於你在bash中的背景是可以理解的,但不像bash python更喜歡使用**庫**,而不是**可執行文件**。 –