<< eof ###輸入重定向
這種適用於出現的問題個數已知
expect是建立在tcl基礎上的乙個工具,它用來自動化完成一些需要互動的任務。
系統中要先安裝expect 和 tcl
expect 的四個命令
直譯器為:/usr/bin/expect
例子:
#!/bin/bash
read -p "what's your name: " name
read -p "how old are you: " age
read -p "are you felling: " feel
echo $name is $age\'s old fell $feel
給該指令碼乙個執行許可權
chmod +x /mnt/information.sh
編寫expect指令碼
#!/usr/bin/expect ##expect的直譯器
set name [ lindex $ar** 0 ] ###獲得指令碼的執行引數,其儲存在$ar**中,編號從0開始,並將其儲存到變數name中。
set age [ lindex $ar** 1 ]
set feel [ lindex $ar** 2 ]
set timeout 5 ##設定時間,如果5秒答不上來就結束跳出
spawn /mnt/information.sh ###spawn啟動指令碼和命令的會話
expect
"old"
"felling"
}expect eof ##互動結束
執行結果
自動登陸指令碼
執行指令碼後自動登陸172.25.254.60並保持登陸
#!/usr/bin/expect
spawn ssh [email protected] ##spawn後跟著要執行的動作
expect
"password"
}interact ###保留互動模式
執行結果展示
將expect整合到shell中。
例:批處理指令碼
檢測開啟的所有主機,並抓取所有主機的ip和主機的機名對應列表,並把列表儲存到file1t檔案中。
#!/bin/bash
auto_ssh(){ ##定義乙個函式
/usr/bin/expect
if [ "$?" -eq "0" ] ##如果上一條執行為真,則$?=1
then
auto_ssh $ip_id hostname | grep "password:" -a1 | tail -n 1 >> $1 ### 過濾含有password:的下一行 將最後一列輸出 將輸出的內容儲存到file1中
fidone
執行結果
expect自動應答
expect指令碼 1.expect簡介 expect是乙個用來處理互動的命令。借助expect,我們可以將互動過程寫在乙個指令碼上,使之自動化完成。expect 自動應答 基於tcl tool command language 語言演變而來 expect中最關鍵的四個命令是 send 用於向程序傳...
自動應答API memo
android關閉麥克風api public void setmicrophonemute boolean on sets the microphone mute on or off.parameters onset true to mute the microphone false to turn...
shell指令碼之expect自動應答語言
在指令碼中寫入與系統互動時可能出現的詢問語句,然後將要回答的答案也寫入指令碼中,實現自問自答,從而實現指令碼的人機互動。expect 是自動應答命令用於互動式命令的自動執行 spawn 是 expect 中的監控程式,其執行後會監控命令提出的互動問題 send傳送問題答案給互動命令 r 表示回車 e...