1. 程式人生 > >shell指令碼 expect 命令的使用

shell指令碼 expect 命令的使用

expect 是個不錯的命令,可以完成一系列的自動化命令操作。對每次ssh登入輸入密碼這麼麻煩的時候使用深有體會。多數固定的命令執行,也可以通過expect來操作執行,非常的方便。

如下例子,我們通過expect來完成一系列的操作有讀取實時日誌

#!/usr/bin/expect

spawn ssh [email protected]
set timeout 30
expect "password"
send "123456"
send "\n"
set timeout 5
expect “:~>”
send "sudo su -"
send "\n"
expect "~ #"
send "tail -200f /var/log/nginx/access.log"
send "\n"
interact

spawn是進入expect環境後才可以執行的expect內部命令,那麼首先確定環境安裝了expect。

expect我的理解有點類似if 的判斷

send 是執行到某一步要輸入的鍵位

interact 保證登入不退出,沒有的話執行完成即退出

對於執行可能產生的延遲部分我用timeout