接觸expect tcl語言

2021-09-08 20:46:18 字數 823 閱讀 2455

接觸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+10

10+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 語句後,將不再做其他判斷,直接執行下面的所有語...