a) spawn: spawn命令是expect的初始命令,它用於啟動乙個程序,之後所有expect操作都在這個程序中進行,如果沒有spawn語句,整個expect就無法再進行下去了,使用方法就像下面這樣:
在spawn命令後面,直接加上要啟動的程序等資訊。當然,如果真的不要spawn過程也沒有關係,雖然這樣就沒有辦法單獨執行,但是這個指令碼可以與任何呼叫它的程序進行互動。
b) expect: expect命令用於等候乙個相匹配的輸出,一旦匹配就執行後面的動作,這個命令接受幾個特有引數,用的最多的就是-re,表示使用正規表示式的方式匹配。expect命令還有一種用法,它可以在乙個expect匹配中同時匹配多個關鍵字,只需要將關鍵字放在乙個大括號中就可以了:
expect
-re 「topsecos#」
乙個相似的命令是expect_user,差異在於expect_user匹配使用者的輸入。
expect_user
這個**段首先從使用者那裡獲取輸入,如果發現輸入的是hello字元時,就會啟用下面的動作,列印hello字元,因為exp_continue命令的存在,這個程式會一直迴圈下去。
c) send:一般是expect中的動作命令,向程序傳送輸入內容,類似的是send_user表示把後面的內容輸出到標準輸出中,send_error表示輸出到標準錯誤中。
d) exp_continue:需處於expect的動作中,表示expect的匹配從頭開始繼續匹配。
e) exit,close,wait:exit表示退出指令碼,close表示立即關閉過程,而wait則是等待過程返回eof時關閉。
#scp_files.sh
#!/bin/bash
ip="192.168.210.132"local_file=$1remote_dir="/data"
passwd="bigdata_2015"expect-c " spawn scp$local_file bigdata@$ip:$remote_dir
expect
#! /usr/bash
cd/data2/201512_bak_file
pattern=$1
ls -l $|awk ''|whileread linedo
sh /data2/201512_bak_file/scp_files.sh$linedone
OSPF重發布路由時E1和E2的用法
在ospf域外路徑metric值和ospf域內路徑metic值具有可比性時,設定外部路由型別為e1,比如說重發布乙個參考頻寬相同的ospf域中的路由,或者重發布時能選擇出乙個能對內部而言有意義的metric值。在ospf域外路徑度量值和ospf域內路徑的度量值不具可比性時,設定外部路由型別為e2。o...
E 時間排序
time limit 1000ms memory limit 65535k 題型 程式設計題 語言 無限制 在開發專案的過程當中,經常會遇到這樣乙個問題,根據時間進行排序。並且當輸入的時間格式不規範時,這個問題變得有些棘手。現在,你需要編寫乙個程式,實現將給定的時間按時間先後排序後輸出。輸入的時間主...
E 穩定排序
大家都知道,快速排序是不穩定的排序方法。如果對於陣列中出現的任意a i a j i input 本題目包含多組輸入,請處理到檔案結束。對於每組資料,第一行有乙個正整數n 0 output 對於每組資料,如果演算法是正確並且穩定的,就在一行裡面輸出 right 如果演算法是正確的但不是穩定的,就在一行...