2013-03-15 86 views
2


我已經創建了一個shell腳本,將自動登錄到遠程機器。
但我需要自動執行命令或shell腳本以及此腳本。
對於在遠程計算機中創建目錄(例如!)的shell腳本,我需要做些什麼修改?運行命令與期望

#!/usr/bin/expect 
set login "root" 
set addr "10.3.2.0" 
set pw "root" 

spawn ssh -t [email protected]$addr 
expect "[email protected]$addr's password:" 
send "$pw\r" 
interact 

在此先感謝。

+0

您可能想要查找Expect教程或閱讀「Exploring Expect」書。 – 2013-03-15 15:20:10

回答

3

您可以簡單地添加語句腳本:

#!/usr/bin/expect 
set login "root" 
set addr "10.3.2.0" 
set pw "root" 

spawn ssh -t [email protected]$addr 
expect "[email protected]$addr\'s password:" 
send "$pw\r" 
expect "~" ; # put here string from your server prompt 
send "mkdir some_dir\r" 
interact 
+0

它不工作! – user103134 2013-03-15 12:59:11

+0

你能更具體嗎?你得到了什麼錯誤?您是否已將預期聲明更改爲服務器提示? – 2013-03-15 13:14:50

+0

它的工作!!我認爲它沒有工作,因爲它在shell中插入'mkdir some_dir',但目錄已創建! – user103134 2013-03-16 05:07:17

0

,或者如果你沒有信息關於提示如何將看起來像命令與spawn可以調用一個個interact分離:

spawn command1 
interact 
spawn command2 
interact 
spawn command3 
interact