expect介绍和使用
生活随笔
收集整理的這篇文章主要介紹了
expect介绍和使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
安裝
expect是建立在tcl基礎上的一個自動化交互套件, 在一些需要交互輸入指令的場景下, 可通過腳本設置自動進行交互通信. 其交互流程是:
spawn啟動指定進程 -> expect獲取指定關鍵字 -> send想指定進程發送指定指令 -> 執行完成, 退出.
由于expect是基于tcl的, 所以需要確保系統中安裝了tcl:
# 檢查是否安裝了tcl:
[root@localhost ~]# whereis tcl
tcl: /usr/lib64/tcl8.5 /usr/include/tcl.h /usr/share/tcl8.5
# 如果沒有安裝, 使用yum安裝tcl和expect:
[root@localhost ~]# yum install -y tcl
[root@localhost ~]# yum install -y expect
# 查看expect的安裝路徑:
[root@localhost ~]# command -v expect
/usr/bin/expect
mac端安裝expect
下載tcl,expect
配置tcl
sudo cp tcl8.4.20-src.tar.gz /usr/local/ &&
cd /usr/local/ &&
sudo tar -zxvf tcl8.4.20-src.tar.gz &&
cd tcl8.4.20 &&
cd unix &&
sudo ./configure --prefix=/usr/local/tcl --enable-shared &&
sudo make &&
sudo make install &&
sudo cp ./tclUnixPort.h ../generic/
安裝expect
sudo cp expect5.45.4.tar.gz /usr/local/ &&
cd /usr/local/ &&
sudo tar -zxvf expect5.45.4.tar.gz &&
cd expect5.45.4 &&
sudo ./configure --prefix=/usr/local/expect --with-tcl=/usr/local/tcl/lib --with-tclinclude=/usr/local/tcl8.4.20/generic &&
sudo make &&
sudo make install
expect常用命令
spawn 啟動新的交互進程, 后面跟命令或者指定程序
expect 從進程中接收信息, 如果匹配成功, 就執行expect后的動作
send 向進程發送字符串
send exp_send 用于發送指定的字符串信息
exp_continue 在expect中多次匹配就需要用到
send_user 用來打印輸出 相當于shell中的echo
interact 允許用戶交互
exit 退出expect腳本
eof expect執行結束, 退出
set 定義變量
puts 輸出變量
set timeout 設置超時時間
參數選項
-c:執行腳本前先執行的命令,可多次使用。
-d:debug模式,可以在運行時輸出一些診斷信息,與在腳本開始處使用exp_internal 1相似。
-D:啟用交換調式器,可設一整數參數。
-f:從文件讀取命令,僅用于使用#!時。如果文件名為"-",則從stdin讀取(使用"./-"從文件名為-的文件讀取)。
-i:交互式輸入命令,使用"exit"或"EOF"退出輸入狀態。
--:標示選項結束(如果你需要傳遞與expect選項相似的參數給腳本時),可放到#!行:#!/usr/bin/expect --。
-v:顯示expect版本信息。
四個命令
Expect中最關鍵的四個命令是send,expect,spawn,interact。
send:用于向進程發送字符串
expect:從進程接收字符串
spawn:啟動新的進程
interact:允許用戶交互
參考
expect(1)命令
教你如何在Linux中通過expect工具實現腳本的自動交互
總結
以上是生活随笔為你收集整理的expect介绍和使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab中imfilter、conv
- 下一篇: Java修改PDF文件内容