shell expect使用方法

2021-06-18 13:13:48 字數 947 閱讀 9931

expect的作者don libes在2023年開始編寫expect時對expect做有如下定義:expect是乙個用來實現自動互動功能的軟體套件(expect [is a] software suite for automating interactive tools)。使用它系統管理員的可以建立指令碼用來實現對命令或程式提供輸入,而這些命令和程式是期望從終端(terminal)得到輸入,一般來說這些輸入都需要手工輸入進行的。expect則可以根據程式的提示模擬標準輸入提供給程式需要的輸入來實現互動程式執行。甚至可以實現實現簡單的bbs聊天機械人。

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

從最簡單的層次來說,expect的工作方式象乙個通用化的chat指令碼工具。chat指令碼最早用於uucp網路內,以用來實現計算機之間需要建立連線時進行特定的登入會話的自動化。spawn命令來啟動指令碼和命令,chat指令碼由一系列expect-send對組成:expect等待輸出中輸出特定的字元,通常是乙個提示符,然後傳送特定的響應。

set timeout設定指令碼等shell返回與expect指定的模式匹配的字串的時間,如果匹配成功則立即繼續執行,如果匹配不到就會阻塞,在超出timeout指定的時間後才繼續執行。

timeout預設是10s,如果設定為-1,指令碼就要永遠等下去。

乙個簡單的例子,用於自動輸入kerberos密碼:   

#!/usr/bin/expect

#source /home/rank/.bash_profile

set timeout 10

spawn /usr/bin/kinit can.yu

expect "*opi.com*"

send "111111\r"

expect eof

pythonpip使用方法 pip使用方法整理

匯出專案已安裝的pip包 pip list 檢視專案中安裝的包 pip freeze requirements.txt 將專案中所用到的第三方庫輸出到requirements.txt中 pip install 版本號 pip install i 本次使用清華源進行安裝 離線安裝第三方庫 一鍵安裝整個...

使用方法 離型劑使用方法

1 使用離型劑前必須確保模具乾淨,無粉塵 蠟垢 樹脂垢 油汙等殘留物質。可以使用專用的模具潔模劑進行清洗,不可用其他液體清洗,以免清洗不乾淨或損壞模具。另外,如果您的模具是新的,在清洗乾淨後,務必要對模具進行初步處理,用離型劑在模具表面噴 刷塗5 6次,之後方可正常投入生產。2 使用離型劑時,首先要...

使用方法 卡丁車輪胎使用方法

輪胎的使用方法很重要 卡丁車輪胎是卡丁車場日常執行中的主要易損件,但是輪胎的使用方法很重要。哪些情況下會縮短輪胎的使用壽命呢?一 跑道地面粗糙 有的跑道在鋪瀝青時,或者選錯了瀝青中石子的規格,或者碾壓得不夠平整,導致路面粗糙。有的跑道使用現成的水泥地,但表面粗糙或不平整。有的室內跑道,為了提高輪胎的...