2013-04-18 97 views
0

我想達到一定的期望腳本我有一個txt文件..需要與assitance expect腳本

它包含諸如

1 ip telnetname slot1 slot2 assoc1 assoc2 mep1 mep2 
2 ip telnetname slot1 slot2 assoc1 assoc2 mep1 mep2 

數據我想打一個期望腳本,每行在文件中它產生了一個telnet會話,其中的變量從第1行的spawn telnet中設置爲變量,其中每一個字作爲變量設置爲稍後在命令中使用。

這是我試過到目前爲止

foreach ip $ips telnetname $telnetnames slot1 $slots1 slot2 $slots2 { commands here } 
+0

缺少的是你嘗試過的結果。因此,您確實需要幫助的問題。否則,這個問題看起來像可悲的標準「給我完整的代碼」類型。 – kostix

+0

你可以編輯自己的答案,並嘗試闡述你試圖達到的目標嗎?我不知道我明白你想要做什麼。你的意思是你想要使用,例如,只有第一行而不是其他行,當你運行命令? (並且它可能只是另一次只有第3行) – Jerry

回答

0

這不是很清楚你想要什麼,從你的描述的事,但它可能比較容易使你的代碼的工作是這樣的:

# Slurp the data into Tcl; it's not *that* long, is it? 
set f [open "inputfile.txt"] 
set data [read $f] 
close $f 

foreach line [split $data "\n"] { 
    # Tcl's [scan] is like C's sscanf(), but memory-safe! 
    if {[scan $line "%d %s %s %s %s" -> ip telnetname slot1 slot2] != 5} { 
     # Not what was expected; skip it! 
     continue 
    } 
    # Now do something with $ip, $telnetname, $slot1 and $slot2 ... 
} 
+0

另外,' - >'實際上是一個(奇怪的)變量名,我正在使用,因爲我並不關心在開始時的數字線。 (假設這是一個真實的數字。) –