我想在Tcl提示符中获取文件后进行交互。 即,
] $ tclsh myCode.tcl
//执行我的代码
%//在myCode.tcl
中输入Interact模式答案 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做某事,然后将控制权交还给用户,请在下面的手册页链接中查看交互命令:
答案 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/