2012-08-01 62 views
0

在我期望的腳本中,我的目標是發送一個命令來顯示主板上兩個處理器的屬性。請假定遠程登錄成功。這是發送子句變量未被成功評估的地方。期望腳本子句評估

  1. 我有一個過程,一個變量: 集showcpu 「顯示-d屬性/ SYS/MB/P \ R」

  2. 我創建了一個while循環執行做一個 「發送」 如果的 「CPU」 開始計數在0和小於2。

    set cpu 0 
    
    while { $cpu < 2 } { 
        expect { 
        -re $prompt {send "${showcpu}${cpu}\r"; } 
        timeout { 
         my_puts "ILOM prompt timeout error-2" [ list $fh1 $fh3 stdout ] 
         exit 1 
        } 
        } 
    
        set cpu [ expr {$cpu + 1} ] 
    } 
    

執行結果是這樣的:

[BL0/SP]-> show -d properties /SYS/MB/P 
show: Invalid target /SYS/MB/P 

[BL0/SP]-> 0 
Invalid command '0' - type help for a list of commands. 

我想腳本值$showcpu$cpu結合,它應該是這樣的:

show -d properties /SYS/MB/P0 and show -d properties /SYS/MB/P1. 

可能有人請教育我什麼,我需要做來實現這一目標?

+0

沒有必要爲你的問題道歉。它也有助於閱讀格式指南,特別是當您粘貼代碼塊時。 – larsks 2012-08-01 17:33:05

+0

你能告訴我們你在哪裏設置showcpu嗎?看起來你在這個字符串中有一個錯誤的eol。 – larsks 2012-08-01 17:33:27

回答

0

變量${showcpu}本身已經包含「\ r」(根據1.)。 要麼定義它沒有爲「\ r」:

set showcpu "show -d properties /SYS/MB/P" 

或使用string trimhttp://wiki.tcl.tk/10174):

send "[string trim ${showcpu}]${cpu}\r" 

我會建議削減對其中的變量設置的地方空格,不使用變量的地方。