Linux安裝expect


主要參考:https://www.cnblogs.com/zhenbianshu/p/5867440.html

expect解釋器

expect是一個能實現自動和交互式任務的解釋器,它也能解釋常見的shell語法命令,其特色在以下幾個命令:

spawn命令:

spawn command命令會fork一個子進程去執行command命令,然后在此子進程中執行后面的命令;

在ssh自動登陸腳本中,我們使用 spawn ssh user_name@ip_str,fork一個子進程執行ssh登陸命令;

expect命令:

expect命令是expect解釋器的關鍵命令,它的一般用法為 expect "string",即期望獲取到string字符串,可在在string字符串里使用 * 等通配符;

string與命令行返回的信息匹配后,expect會立刻向下執行腳本;

set timeout命令:

set timeout n命令將expect命令的等待超時時間設置為n秒,在n秒內還沒有獲取到其期待的命令,expect 為false,腳本會繼續向下執行;

send命令:

send命令的一般用法為 send "string",它們會我們平常輸入命令一樣向命令行輸入一條信息,當然不要忘了在string后面添加上 \r 表示輸入回車;

interact命令:

interact命令很簡單,執行到此命令時,腳本fork的子進程會將操作權交給用戶,允許用戶與當前shell進行交互;

 

我試了網上很多安裝方法,都存在問題,最后解決方案

sudo apt-get install expect

這樣也不需要tcl

寫了一個自動ssh登陸機器人服務器的腳本文件

#!/usr/bin/expect                   // 指定shebang

set timeout 3                       // 設定超時時間為3秒
spawn ssh user_name@172.***.***.*** // fork一個子進程執行ssh命令
expect "*word*"                 // 期待匹配到 'user_name@ip_string's password:' 
send "my_password\r"                // 向命令行輸入密碼並回車
interact                            // 允許用戶與命令行交互


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM