expect命令使用

2021-08-08 01:26:37 字數 1270 閱讀 9269

expect 是由don libes基於tcl(tool command language

)語言開發的,主要應用於自動化互動式操作的場景,借助expect處理互動的命令,可以將互動過程如:ssh登入,ftp登入等寫在乙個指令碼上,使之自動化完成。尤其適用於需要對多台伺服器執行相同操作的環境中,可以大大提高系統管理人員的工作效率

expect命令

expect 語法:

expect [選項] [ -c cmds] [ [ -[f|b] ] cmdfile] [ args]

選項

-c:從命令列執行expect指令碼,預設expect是互動地執行的

示例:expect -c 『expect 「\n」

-d:可以輸出輸出除錯資訊

示例:expect -d ssh.exp

expect中相關命令

spawn:啟動新的程序

send:用於向程序傳送字串

expect:從程序接收字串

interact:允許使用者互動

exp_continue匹配多個字串在執行動作後加此命令

expect最常用的語法(tcl語言:模式-動作)

單一分支模式語法:

expect 「hi」

匹配到hi後,會輸出「you said hi」,並換行

多分支模式語法:

expect 「hi」 \

「hehe」 \

「bye」

匹配hi,hello,bye任意字串時,執行相應輸出。等同如下:

expect 

"hehe"

"bye"

}

以下是在expect在shell指令碼中呼叫常用的幾個用法,自動拷貝指令碼,下發指令碼,ssh 和telnet 連線遠端主機.

expect可以實際靜默的操作,這個在指令碼中經常用到,讀者根據對應的功能,拷貝相關**,可以直接把變數換成固定的值,不需要每次執行指令碼都需要人工輸入變數值,實現靜默操作。

本文參考

expect 的小點 expect的使用

expect password send 123456 r 注意 expect 和字串 password 中間有乙個空格,send和字串 123456 r 中間有乙個空格。因為expect和send都是乙個命令,只有加空格才能與引數分開。expect 注意 expect與 之間有乙個空格,因為這樣e...

expect 使用例項

shell指令碼實現ssh自動登入遠端伺服器示例 usr bin expect spawn ssh root 192.168.22.194 expect password send 123 r expect interact expect是乙個用來處理互動的命令。借助expect,我們可以將互動過程...

Expect基礎使用

expect是乙個用來實現自動互動功能的軟體套件。使用expect可以模擬手工互動的過程,實現自動與遠端程式的互動。例如當執行ssh命令連線伺服器時,需要手動輸入密碼,如果採用expect,就可以自動互動,無需再人工手動輸入密碼了。ubuntu系統,執行以下命令安裝 apt install expe...