如何将十进制转换为十六进制并使用expect(TCL)脚本发送十六进制

时间:2014-05-07 14:30:34

标签: linux shell unix tcl expect

我正在编写一个小型期望(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'"

}

1 个答案:

答案 0 :(得分:3)

很长一段时间以来我做过TCL,但我相信以下会做你想做的事情

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

%d和%x占位符与您在C printf / sprintf语句中找到的几乎相同,并允许使用前导零,字段大小等内容