2014-05-07 116 views
1

我寫一個小的期望(TCL)腳本發送一串數字的十六進制格式,並期望東西送十六進制。我遍歷一個循環來逐個發送字節。但我無法以十六進制形式發送該號碼。如何轉換十進制爲十六進制,並使用期望(TCL)腳本

下面是一個示例代碼。我需要將第一行通過循環與0x形式的數字。第二行是我嘗試過的。

send "show hardware internal qengine inst 0 memory ib_rr0_span_dc3hdr start 0x0 num 0x2 \r" 
expect "#" 

for {set i 0} {$i < 16} {incr i 1} { 
puts stdout "i val: $i '\x$i'" 

} 
+2

查找*格式* – vogomatix

回答

2

,因爲我做了TCL很長時間,但我相信下面會做你想做的

puts stdout [format "i val %d '\x%x'" $i $i] 

的%d和%x的佔位符幾乎是一樣的,你會在C的printf查找/ sprintf的聲明,並允許這樣的事情前導零,字段大小等

+0

的'\ x'看上去有些奇怪(可能是'\\ x'會更好),但除此之外,一切都看起來不錯。 –

+0

謝謝 - 我的最後一個Expect/TCL腳本現在大約10歲了:-) – vogomatix

+0

@vogomatix謝謝,這工作。 – joe

相關問題