接觸expect、tcl語言
需求:telnet登陸到遠端裝置,並且根據不同的反饋情況執行一系列命令,我是用expect來實現的。expect是從tcl(tool command language)語言發展來的,tcl語言則應用在測試自動化等領域。實際上用到expect的地方並不多,反而是要花一些時間去學習tcl語言。
tcl語言類似shell,但是開發的時候還是有很多東西要適應的,比如沒有圓括號,方括號作為表示式等等。
linux系統中一般已經安裝了tcl語言執行環境,終端中輸入tclsh即進入。
% set a "hello world!"hello world!
% puts $a
hello world!
set用於註冊變數,puts用來輸出變數。
有一點需要注意,tcl語言預設把所有輸入都當作字串,例如
% set x 10+1010+10
先看一小段**:
% set str "this is a example!"this is a example!
% string first "is" $str
2% string first "is" $str 3
5% set loc [string first "is" $str 3]
5% string index $str $loc
i% string range $str $loc [expr $loc+2]
is
用expect(TCL)實現Linux下的互動
現代的shell對程式提供了最小限度的控制 開始,停止,等等 而把互動的特性留給了使用者。這意味著有些程式,你不能非互動的執行,比如說passwd。有一些程式可以非互動的執行,但在很大程度上喪失了靈活性,比如說su,ssh等。這表明linux的工具構造邏輯開始出現問題。expect恰恰填補了 其中的...
UNIX程式設計 perl語言初接觸
以前也接觸過一點perl語言 但今天才認真使用了一下。對於指令碼語言,它最大的優勢在於文字處理和整合程式。象perl語言,它還有一定的跨平台的優勢。但是由於指令碼語言中的變數都被視為字串,它的劣勢在於效率。文字處理主要用到perl的檔案,字串,和正規表示式。整合程式,perl提供了兩種操作符 sys...
Xcode c語言初接觸 分支結構
要點1 boolean 型別 非0即為真 一假即為假 一真即為真 要點2 分支語句 if if else 要點3 條件運算子 a b a b 要點4 switch 語句,要加break.break作用是跳出switch語句,如果不加,當選擇乙個case 語句後,將不再做其他判斷,直接執行下面的所有語...