寫在前面:目前在公司是一人一臺虛擬機,大多數工做都要在虛擬機上完成,爲此天天要執行不少次【ssh xxx@xxxxxx】指令登陸虛擬機;有不少方式解決這個問題,如使用xshell、secureCRT等工具記錄經常使用的鏈接,我就寫了一個簡單的腳本實現一鍵登陸~git
login.sh腳本內容以下:shell
#!/usr/bin/expect spawn ssh xxx@xxxxxx expect "*password:" send "密碼\r" interact
再將【./login.sh】配置別名alias,或移動到可執行目錄中,便可實現【login】一鍵登陸;服務器
expect是一個處理交互的指令,經過expect咱們能夠把交互過程寫到Shell腳本里以實現一些自動化操做~ssh
expect有四個核心的指令:工具
對於login.sh的執行過程爲:
【spawn】啓動一個新進程執行ssh登陸指令,【expect】監聽到標準輸入的提示信息『xxx@xxxxxx’s password』符合匹配規則,觸發【send】發送密碼代替手動輸入,完成登陸,【interact】用戶參與交互,此時已登陸上了虛擬機;spa
使用expect還能夠完成如:批量更新git代碼庫、自動登陸FTP服務器等功能~FYI~code