shell程式設計之免互動
一.免互動
1.原理:使用I/O重定向的方式將命令列表提供給互動式程式,標準輸入的一種替代品
2.語法格式
命令
…
…
標記
3.注意事項
·標記可以使用任意合法字元
·結尾的標記一定要頂格寫,前面不能有任何字元
·結尾的標記後面也不能有任何字元
·開頭標記前後的空格會被聖羅
3.免互動方式實現對行數的統計,將要統計的內容置於標記“EOF”之間,直接將內容傳給wc -l來統計
wc -l <<EOF
Line1
Line2
EOF
4.通過read命令接收輸入並列印,輸入值是兩個EOF標記之間的部分,作為變數i的值
read i<<EOF
Hi
EOF
echo $i
二.Expect
1.原理:建立在tcl語言基礎上的一個工具,常被用於進行自動化控制和測試,解決shell指令碼中互動相關的問題
rpm -q expect
rpm -q tcl
yum -y install expect
2.基本命令
①.指令碼直譯器:expect指令碼中首先引入檔案,表明使用的是哪一個shell
②.spawn:spawn後面通常跟一個命令,表示開啟一個會,啟動程式,並跟蹤後續互動資訊
③.expect:判斷上次輸出結果中是否包含指定的字串,如果有則立即返回,否則就等待超時時間後返回,只能捕捉由spawn啟動的程式的輸出;用於接收命令執行後的輸出,然後和期望的字串匹配
④.send:向程式傳送字串,用於模擬使用者的輸入;該命令不能自動回車換行,一般要加\r
⑤.結束符:expect eof等待執行結束,退回到原使用者,與spawn對應
⑥set:expect預設的超時時間是10秒,通過set命令可以設定會話超時時間,若不限制超時時間則應設定為-1
⑦.exp_continue:表示允許expect繼續向下執行指令
⑧.send_user:表示回顯命令,相當於echo
⑨.接收引數:expect指令碼可以接收從bash命令列傳遞的引數,使用[lindex $argv n]獲得,其中n從0開始,分別表示第一個,第二個…引數
相關文章
- shell指令碼-免互動指令碼
- Linux之shell程式設計Linux程式設計
- shell擴充套件——免互動指令碼套件指令碼
- shell程式設計之條件語句程式設計
- Shell程式設計程式設計
- 智慧動畫互動設計:Principle mac免啟用版動畫Mac
- Shell程式設計 --- Shell介紹程式設計
- 02 shell程式設計之條件語句程式設計
- 04 shell程式設計之迴圈語句程式設計
- 05 shell程式設計之正規表示式程式設計
- 01 shell程式設計之變數定義程式設計變數
- Linux作業系統之Shell程式設計Linux作業系統程式設計
- shell程式設計五程式設計
- shell程式設計二程式設計
- Linux Shell互動式自動化運維程式Linux運維
- Shell程式設計-shell變數1程式設計變數
- Linux之19——Shell程式設計基礎詳解Linux程式設計
- Shell程式設計-02-Shell變數程式設計變數
- Shell程式設計-基礎程式設計
- Shell程式設計-read命令程式設計
- shell程式設計進階程式設計
- shell 程式設計簡記程式設計
- Linux Shell程式設計(1)Linux程式設計
- Linux Shell程式設計(2)Linux程式設計
- shell程式設計基礎程式設計
- Shell 程式設計入門程式設計
- 初識shell程式設計程式設計
- 好程式設計師雲端計算教程分享Shell程式設計之for迴圈結構程式設計師
- 03 shell程式設計之case語句與函式程式設計函式
- shell指令碼程式設計之選擇控制結構指令碼程式設計
- 強大的動畫互動設計:Principle免啟用最新版動畫
- Shell程式設計-11-子Shell和Shell巢狀程式設計巢狀
- Shell程式設計——極簡教程程式設計
- shell程式設計–bash變數程式設計變數
- shell程式設計—簡介(一)程式設計
- Shell 指令碼程式設計陷阱指令碼程式設計
- shell程式設計基礎二程式設計
- 如何學習shell程式設計?Linux運維學習shell程式設計是什麼程式設計Linux運維