在没有任何 tcl 文件的情况下运行tclsh
命令,解释器将进入交互模式。
我可以通过修改 tclsh 源代码来简单地禁用此功能吗?
在没有任何 tcl 文件的情况下运行tclsh
命令,解释器将进入交互模式。
我可以通过修改 tclsh 源代码来简单地禁用此功能吗?
鉴于提供任何脚本文件都会关闭交互模式,我无法想象你为什么要费心这样做。您提供的脚本将可以完全访问传入的附加参数(全局argv
变量中的列表)和标准 IO 通道(stdin
和stdout
)stderr
。完成后就可以exit
了。从字面上看,您想要的任何事情都可以在那时完成;你只需要编写一个脚本来完成它。
如果您在自己的程序中包含 Tcl,则 的行为tclsh
在 C 函数中实现Tcl_Main
。如果你从不调用它——而只是使用Tcl_FindExecutable
,Tcl_CreateInterp
和Tcl_Eval
/ Tcl_EvalFile
——那么你永远不会得到任何交互行为。虽然理论上你可以修改 Tcl 源代码本身来做你想做的事——它都是开源的——当你一开始就不能调用那个代码时,你为什么还要费心呢?