国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 服務器 > Linux服務器 > 正文

linux中expect的介紹與使用示例

2024-09-05 23:03:30
字體:
來源:轉載
供稿:網友

一、概述

我們通過Shell可以實現簡單的控制流功能,如:循環、判斷等。但是對于需要交互的場合則必須通過人工來干預,有時候我們可能會需要實現和交互程序如telnet服務器等進行交互的功能。而Expect就使用來實現這種功能的工具。

Expect是一個免費的編程工具語言,用來實現自動和交互式任務進行通信,而無需人的干預。Expect的作者Don Libes在1990年 開始編寫Expect時對Expect做有如下定義:Expect是一個用來實現自動交互功能的軟件套件 (Expect [is a] software suite for automating interactive tools)。使用它系統管理員 的可以創建腳本用來實現對命令或程序提供輸入,而這些命令和程序是期望從終端(terminal)得到輸入,一般來說這些輸入都需要手工輸入進行的。 Expect則可以根據程序的提示模擬標準輸入提供給程序需要的輸入來實現交互程序執行。甚至可以實現實現簡單的BBS聊天機器人。 :)

Expect是不斷發展的,隨著時間的流逝,其功能越來越強大,已經成為系統管理員的的一個強大助手。Expect需要Tcl編程語言的支持,要在系統上運行Expect必須首先安裝Tcl。

二、Expect工作原理

從最簡單的層次來說,Expect的工作方式象一個通用化的Chat腳本工具。Chat腳本最早用于UUCP網絡內,以用來實現計算機之間需要建立連接時進行特定的登錄會話的自動化。

Chat腳本由一系列expect-send對組成:expect等待輸出中輸出特定的字符,通常是一個提示符,然后發送特定的響應。例如下面的 Chat腳本實現等待標準輸出出現Login:字符串,然后發送somebody作為用戶名;然后等待Password:提示符,并發出響應 sillyme。

引用:Login: somebody Password: sillyme

這個腳本用來實現一個登錄過程,并用特定的用戶名和密碼實現登錄。

Expect最簡單的腳本操作模式本質上和Chat腳本工作模式是一樣的。

三、一個例子:

#!/usr/bin/expect -f set ip [lindex $argv 0 ]  //接收第一個參數,并設置IP set password [lindex $argv 1 ] //接收第二個參數,并設置密碼 set timeout 10     //設置超時時間 spawn ssh root@$ip  //發送ssh請滶 expect {     //返回信息匹配  "*yes/no" { send "yes/r"; exp_continue} //第一次ssh連接會提示yes/no,繼續  "*password:" { send "$password/r" }  //出現密碼提示,發送密碼 } interact   //交互模式,用戶會停留在遠程服務器上面. 

運行結果:

root@ubuntu:/home/zhangy# ./test.exp 192.168.1.130 admin spawn ssh root@192.168.1.130 Last login: Fri Sep 7 10:47:43 2012 from 192.168.1.142 [root@linux ~]# 

總結

以上就是關于linux下使用expect示例的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿拉善左旗| 百色市| 武宣县| 阳西县| 桦川县| 嫩江县| 睢宁县| 兰州市| 宜阳县| 余干县| 五台县| 罗源县| 新乡市| 北辰区| 阳原县| 肃宁县| 兰州市| 安吉县| 新绛县| 西昌市| 浦城县| 奉化市| 九龙坡区| 辽中县| 惠州市| 民县| 郴州市| 金堂县| 甘谷县| 乐昌市| 蓝田县| 称多县| 汉中市| 天祝| 天柱县| 磐安县| 沁源县| 龙南县| 高州市| 濉溪县| 洮南市|