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指令碼-免互動指令碼
- shell擴充套件——免互動指令碼套件指令碼
- Linux 程式設計之Shell程式設計(轉)Linux程式設計
- Linux之shell程式設計Linux程式設計
- 智慧動畫互動設計:Principle mac免啟用版動畫Mac
- shell oracle互動Oracle
- shell程式設計之條件語句程式設計
- 極限程式設計 vs 互動式設計 (轉)程式設計
- shell程式設計程式設計
- Linux Shell程式設計(1)——shell程式設計簡介Linux程式設計
- Shell程式設計 --- Shell介紹程式設計
- 01 shell程式設計之變數定義程式設計變數
- 04 shell程式設計之迴圈語句程式設計
- 05 shell程式設計之正規表示式程式設計
- 02 shell程式設計之條件語句程式設計
- shell程式設計之【一鍵安裝lanmp】程式設計
- 互動設計指南
- Linux Shell互動式自動化運維程式Linux運維
- 寫給程式猿們的互動設計
- Python與C++互動程式設計PythonC++程式設計
- 互動設計分享:淺談互動設計的一切
- Windows Shell 程式設計Windows程式設計
- shell程式設計(轉)程式設計
- shell程式設計二程式設計
- shell程式設計五程式設計
- Linux Shell自動互動Linux
- Shell程式設計-shell變數1程式設計變數
- Bourne Shell及shell程式設計(轉)程式設計
- 表單互動設計之必選項思考
- Linux作業系統之Shell程式設計Linux作業系統程式設計
- 強大的動畫互動設計:Principle免啟用最新版動畫
- 好程式設計師雲端計算教程分享Shell程式設計之for迴圈結構程式設計師
- Linux系統程式設計(34)—— socket程式設計之TCP伺服器與客戶端的互動Linux程式設計TCP伺服器客戶端
- Shell程式設計-02-Shell變數程式設計變數
- Linux Shell程式設計(27)——子shellLinux程式設計
- shell簡介之bash程式設計之引數說明(轉)程式設計
- 初識shell程式設計程式設計
- Shell 程式設計入門程式設計