日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

expect介绍和使用

發布時間:2023/12/19 综合教程 23 生活家
生活随笔 收集整理的這篇文章主要介紹了 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介绍和使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。