expect 是建立在工具控制語言(Tool Control Language,TCL)之上的一個工具,它允許你通過編寫程序來對一些日常繁瑣的任務進行有交互界面的自動化操作。在 expect 上下文環境,你可以使用一些額外的只適用于 expect 上下文環境的命令,如 spawn、send、interact 等命令。
expect 預期的終端輸出
這里預期的輸出從左往右只要存在匹配即可。它相當于 Python 的 search()
函數,而非 match()
函數。舉個例子你就明白了。
想要登陸到 root 權限,首先觀察在普通交互模式下的效果。
在獲悉返回字符串的模式后,你可以這樣寫 expect Password
,也可以這樣寫 Password:
,甚至可以寫成 assw
,它們對于 expect
命令而言都是一樣的。
下面的腳本用來開啟一個遠程 ssh 會話。
#!/usr/bin/expectspawn ssh user@ip_addrsend "password/r"interact
如果想要保存并調用一些變量,你可以使用 set
參數進行設置。
公式set 變量名 [lindex $argv 數字]實例set port [lindex $argv 1]
之前的 ssh 登陸腳本如果加上變量會變成下面這樣。大約需要 10 秒的加載時間。
#!/usr/bin/expectset ip [lindex $argv 0]set user [lindex $argv 1]set password [lindex $argv 2]spawn ssh "$user/@$ip"expect "Password:"send "$password/r";interact
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對武林網的支持。如果你想了解更多相關內容請查看下面相關鏈接
新聞熱點
疑難解答