0

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

]$ tclsh myCode.tcl

// 执行我的代码

% // 在 myCode.tcl 中进入交互模式

4

4 回答 4

2

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

package require Tclx

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

# Let the user issue commands
commandloop

上面链接的 wiki 页面讨论了如何在不使用 TclX 的情况下做到这一点。

于 2013-10-15T12:43:39.077 回答
1

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

fileevent stdin readable {
    puts [eval [gets stdin]]
}

vwait forever

您甚至可以将其作为一个独立程序来实现,该程序为您的其他 tcl 脚本提供源代码。

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

于 2013-10-16T07:39:14.283 回答
1

恐怕我可能读得太少了,或者过度简化了它,但是……这不是你需要的interact命令吗?

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

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

于 2013-10-15T20:44:09.520 回答
0

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

#!/usr/bin/tkcon myscript.tcl

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

于 2021-07-06T06:35:02.960 回答