expect是一個(gè)自動(dòng)化交互套件,主要應(yīng)用于執(zhí)行命令和程序時(shí),系統(tǒng)以交互形式要求輸入指定字符串,實(shí)現(xiàn)交互通信。
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的銅仁網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!expect自動(dòng)交互流程:
spawn啟動(dòng)指定進(jìn)程---expect獲取指定關(guān)鍵字---send向指定程序發(fā)送指定字符---執(zhí)行完成退出
簡(jiǎn)單實(shí)例1:
vim test.exp ##exp是expect腳本的擴(kuò)展名
#!/usr/bin/expect ##使用expect解析程序
spawn ssh root@192.168.1.5 free ##用spawn執(zhí)行ssh命令 登錄后執(zhí)行free命令
expect “*password” ##匹配獲取的字符串
send “123456\n” ##匹配后發(fā)送密碼給系統(tǒng),\n是換行
expect eof ##處理結(jié)束expect
實(shí)例2:
#!/usr/bin/expect
spawn ssh root@192.168.1.5 free
expect {
"yes/no" {exp_send "yes\r";exp_continue}
"*password" {exp_send "123456\r"}
}
expect eof
實(shí)例3:
#!/usr/bin/expect
spawn test.sh
expect {
"username" {exp_send "test\r";exp_continue}
"*password" {exp_send "123456\r";exp_continue}
"*mail*" {exp_send "lidao@163.com\r"}
}
expect eof
expect 常用 命令總結(jié)
spawn 交互程序開(kāi)始 后面跟命令或者指定程序
expect 獲取匹配信息 匹配成功則執(zhí)行expect后面的程序動(dòng)作
send exp_send 用于發(fā)送指定的字符串信息
exp_continue 在expect中多次匹配就需要用到
send_user 用來(lái)打印輸出 相當(dāng)于shell中的echo
exit 退出expect腳本
eof expect執(zhí)行結(jié)束 退出
set 定義變量
puts 輸出變量
set timeout 設(shè)置超時(shí)時(shí)間
實(shí)例4:
#!/usr/bin/expect
if {$argc !=2 } {
puts "expect $argv0 ip command"
exit
}
set ip [lindex $argv 0]
set cmd [lindex $argv 1]
set password "123456"
spawn ssh root@$ip $cmd
expect {
"yes/no" {send "yes/r";exp_continue}
"*password" {send "$password\r"}
}
expect eof
expect test.exp 192.168.1.5 "free -m"
實(shí)例5:ssh秘鑰認(rèn)證
生成秘鑰
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa >/dev/null 2>&1
vim test.exp
#!/usr/bin/expect
if [ $argc != 2 ] {
send_user "usage: expect test.exp file host\n"
exit
}
set file [lindex $argv 0]
set host [lindex $argv 1]
set password "123456"
spawn ssh-copy-id -i $file "-p 22 root@$host"
expect {
"yes/no" {send "yes\r";exp_continue}
"*password" {send "$password\r"}
}
expect eof
vim kk.sh 循環(huán)expect腳本
#!/bin/bash
for n in 2 3 4 5 6 7
do
expect test.exp ~/.ssh/id_dsa.pub 192.168.1.$n
done
expect操作簡(jiǎn)單 用途明了 易學(xué)易用 不過(guò),現(xiàn)在工作中用的不是很多,日常也多是用來(lái)輔助其他程序腳本執(zhí)行的
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站題目:Expect自動(dòng)化交互應(yīng)用實(shí)例解析-創(chuàng)新互聯(lián)
標(biāo)題URL:http://jinyejixie.com/article38/cshepp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、虛擬主機(jī)、自適應(yīng)網(wǎng)站、Google、服務(wù)器托管、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容