shell之expect用法

一、安裝
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會報錯,由於沒有進程可以斷開

相關文章
相關標籤/搜索