
Tcl/expect programming
Tcl and expect use experience
jasonxty
这个作者很懒,什么都没留下…
展开
-
expect debug
可以帮助调试的方法:#!/usr/bin/expect -d exp_internal strace/trace了解一下expect_out数组,expect_out数组专用于expect命令,里面的元素包括:expect_out(buffer)、expect_out(X,string)、expect_out(X,start)、expect_out(X,end)、expect_out(spawn_id)上面的X字符表示从0-9的整数,具体如下expect_out(buffer)是一个看原创 2021-12-01 17:52:03 · 533 阅读 · 0 评论 -
expect怎么退出telnet
自己网上google了半天,网上各种乱七八糟的答案,最后问了同事。。。send -i $::telnetID "\035"原创 2021-11-30 20:59:37 · 255 阅读 · 0 评论 -
tcl regexp
TOR1-FSTN::[29] set foo "haha heihei hehe"haha heihei heheTOR1-FSTN::[29] regexp -all -inline {\S+} $foohaha heihei heheTOR1-FSTN::[29] regexp -all -inline {\S} $foo h a h a h e i h e i h e h eTOR1-FSTN::[29] regexp -all -inline {\S+} $foohaha heih.原创 2021-08-05 13:19:34 · 1639 阅读 · 0 评论 -
expect_out(buffer)和expect_out(0,string)的差别
以下文字摘录自expect的manpageUpon matching a pattern (or eof or full_buffer), any matching and previously unmatched output is saved in the variable expect_out(buffer). Up to 9 regexp substring matches are saved in the variables expect_out(1,string) through expec原创 2020-09-22 14:30:22 · 1723 阅读 · 0 评论 -
Tcl中加载共享库生成自己的命令
Step 1:编写共享链接库代码#include <tcl.h>#include <stdio.h>static int fooCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]) { printf("called with %d arguments\n", objc); return TCL_OK;}int Foo_Init(T原创 2020-07-13 10:40:38 · 458 阅读 · 0 评论 -
Tcl中的load命令
tcl中的load命令还是很神奇的。在这里翻译一下tcl的load文档,学习一下。名字load - 加载机器代码,初始化新的命令概要load filenameload filename packagenameload filename packagename interp描述这个命令把一个文件中的二进制代码加载到应用的地址空间,然后调用package中的初始化程序把这些代码集成到解释器中。filename是包含二进制代码的文件名。它具体的形式在不同的系统上面会有所不同,但是在翻译 2020-07-13 10:31:38 · 2241 阅读 · 0 评论 -
exec tclsh “$0“ “$@“
#!/bin/sh#\exec tclsh "$0" "$@"在看老程序的时候,刚打开就是这样三行,把新手看的晕晕的。这个是一个bash脚本。姑且把脚本名字叫做, helloworld.bash。它的参数列表叫做,paramlist。“$0”会被shell替换为helloworld.bash, "$@"会被替换为paramlist。那么第三行就相当于通过exec执行 tclsh helloworld.bash paramlist。tclsh把#当作注释符号,把反斜杠当作续行符,.原创 2020-07-10 13:41:39 · 1589 阅读 · 0 评论