expect腳本可以接受從bash傳遞過(guò)來(lái)的參數(shù).可以使用[lindex $argv n]獲得蔬充,n從0開(kāi)始内贮,分別表示第一個(gè),第二個(gè),第三個(gè)....參數(shù)
# 命令行參數(shù)
# $argv官辽,參數(shù)數(shù)組铸题,使用[lindex $argv n]獲取耘拇,$argv 0為腳本名字
# $argc睦尽,參數(shù)個(gè)數(shù)
set username [lindex $argv 1] # 獲取第1個(gè)參數(shù)
set passwd [lindex $argv 2] # 獲取第2個(gè)參數(shù)
set timeout 30 # 設(shè)置超時(shí)
# spawn是expect內(nèi)部命令缺狠,開(kāi)啟ssh連接
spawn ssh -l username 192.168.1.1
# 判斷上次輸出結(jié)果里是否包含“password:”的字符串问慎,如果有則立即返回,否則就等待一段時(shí)間(timeout)后返回
expect "password:"
# 發(fā)送內(nèi)容ispass(密碼挤茄、命令等)
send "ispass\r"
# 發(fā)送內(nèi)容給用戶
send_user "$argv0 [lrange $argv 0 2]\n"
send_user "It's OK\r"
# 執(zhí)行完成后保持交互狀態(tài)如叼,控制權(quán)交給控制臺(tái)(手工操作)。否則會(huì)完成后會(huì)退出穷劈。
interact