我有一个要求,我需要读取
wc -l
命令的值。基本上我正在运行以下命令来获取值5:
bash-3.2$ wc -l sample.tcl
5 sample.tcl
现在使用tcl和expect编程,我需要检查上面获得的值是否正确。
谁能告诉我如何使用 tcl Expect 编程来写这个吗?
如果你只是想执行一个shell命令,你可以使用
exec
。
% set result [exec wc -l sample.tcl]; # The variable 'result' will have the output
5 sample.tcl
% puts $result
5 sample.tcl
您可以使用 Tcl 独立计算文件中的行数:
# I assume that the file is already opened and that the OS file pointer is at the start of the file
while {[gets $f dummyVariable] >= 0} {
incr count
}
gets
命令读取一行,所以我们只需要统计它成功的次数即可。 (在该使用模式下,它在 EOF 时返回 -1
。)
这是代码:
set fname "Sample.tcl"
puts "\n++++ The value of fname is $fname++++\n"
send "cat > $fname\r"
after 1000
send "default ks\r"
after 1000
send "prompt 0\r"
after 1000
send "label ks\r"
after 1000
send " debug\r"
after 1000
send " error\r"
after 1000
set var [exec wc -l $fname]
puts "****The value of #line is $var*****"
设置结果 [exec wc-1 文件名] 看跌期权 $看跌期权