通常在一個shell腳本,你可以寫,如shell腳本來完成SSH之後進一步命令
command1
command2
command3
命令,他們將被一個接一個執行。
我想寫一個Unix shell腳本SSH到服務器上,然後執行該服務器上的命令。 例如
ssh [email protected]
ls
我嘗試這樣做如上所示但LS不顯示輸出。我究竟做錯了什麼?
通常在一個shell腳本,你可以寫,如shell腳本來完成SSH之後進一步命令
command1
command2
command3
命令,他們將被一個接一個執行。
我想寫一個Unix shell腳本SSH到服務器上,然後執行該服務器上的命令。 例如
ssh [email protected]
ls
我嘗試這樣做如上所示但LS不顯示輸出。我究竟做錯了什麼?
您可以在命令行或stdin中輸入ssh命令。如果你只有一個命令來執行,做:
ssh [email protected] ls
如果你有多個命令,使用定界符在通過stdin傳遞它們:
ssh [email protected] <<END
command1
command2
command3
END
使用密碼的ssh作爲this guide提及。
然後你的腳本將包含:
ssh [email protected] command1
ssh [email protected] command2
ssh [email protected] command3
雖然其他的答案我的問題還是非常好的,我結束了使用一個小的修改後的版本。以爲我會與論壇分享給任何感興趣的人。
ssh -t [email protected] "
command1
command2
command3
bash -l"
優點:它不會將您註銷!
非常感謝anishsane和約翰庫格爾曼
請參閱我對John Kugelman的回答的評論。在這裏,'bash -l'仍然從ssh繼承它的標準輸入,但現在'ssh'使用你的本地終端進行標準輸入,而不是這裏的文檔。 – chepner 2014-09-30 15:56:31
完美。正是我在找的東西。謝謝。 – Kian 2014-09-30 14:22:40
唯一的問題是它會自動將我註銷。有沒有辦法讓我保持登錄狀態? – Kian 2014-09-30 14:33:31
^^添加一行''之前;-) END'的 – anishsane 2014-09-30 14:42:37