Tcl在获取文件后进行交互.tcl

时间:2013-10-15 06:29:49

标签: tcl expect readline

我想在Tcl提示符中获取文件后进行交互。 即,

] $ tclsh myCode.tcl

//执行我的代码

%//在myCode.tcl

中输入Interact模式

4 个答案:

答案 0 :(得分:1)

最简单的方法是使用commandloop中的TclX extension命令。

package require Tclx

#... define things and run things...

# Let the user issue commands
commandloop

上面链接的Wiki页面讨论了如何在不使用TclX的情况下执行此操作。

答案 1 :(得分:0)

我担心我可能读得太少,或者过度简化它,但......不是你需要的interact命令?

如果您希望Tcl / Expect做某事,然后将控制权交还给用户,请在下面的手册页链接中查看交互命令:

http://www.tcl.tk/man/expect5.31/expect.1.html

答案 2 :(得分:0)

如果您宁愿在没有任何外部包的纯tcl中执行此操作,那么tclsh提示的最简单实现确实非常简单。只需将其放在myCode.tcl

的末尾
fileevent stdin readable {
    puts [eval [gets stdin]]
}

vwait forever

您甚至可以将其实现为一个独立的程序来源您的其他tcl脚本。

当然,上面的示例代码非常简单,甚至不会打印提示或处理多行命令等内容,但它是您修改和自定义的良好起点。

答案 3 :(得分:0)

您可以尝试 tkcon,这是一个交互式 tclsh,它创建一个单独的窗口。我用第一行写了一个小的 shell 脚本 mytclsh

#!/usr/bin/tkcon myscript.tcl

并使其可执行 (chmod 755 mytclsh)。这将执行 myscript.tcl 然后进行交互。以下是有关 tkcon 的更多信息:https://wuhrr.wordpress.com/2011/01/13/a-solution-for-tclsh-editing-woes/