一、安裝
bash
expect命令不是系統自帶,須要額外安裝。安裝方法:ssh
#yum install expectide
#which expectspa
/usr/bin/expect進程
二、語法it
#!/usr/bin/expect #聲明解釋器注意不是bashio
set timeout 2 #設置超時時間,超過2秒沒有匹配到expect的值就退出class
set username [lindex $argv 0] #定義變量而且賦值爲腳本的第一個參數變量
set password [lindex $argv 1] 語法
set hostname [lindex $argv 2]
spawn /usr/bin/ssh $username@$hostname #spawn 啓動一個進程或者執行一條命令,後面的expect和send都是爲他服務的
expect {
"yes/no"
{send "yes\r"; exp_continue;}
"Password:"
{send "$password\r";}
}
expect eof
說明:
當spawn建立的是一個鏈接,而不是執行一個單獨的命令時須要使用expect eof結束進程,不然進程可能不會正常結束
當執行一個命令時 ,不能夠帶expect eof, 使用expect eof會報錯,由於沒有進程可以斷開