linux - 我们可以将选项传递给 tcl 8.5 中的 tcl source 命令吗

标签 linux scripting arguments tcl

我正在使用此命令获取 get.tcl 文件并提供“详细”和“即时”选项:

source -verbose -instant get.tcl

上述命令在 tcl 8.4 中对我有效,但在 tcl 8.5 中显示此错误

source (script wrong # args: should be "source_orig ?-encoding name? fileName"

如果我只写

source get.tcl

它在 tcl 8.5 中通过

tcl 8.5有没有和这个相关的变化?

最佳答案

source 命令只接受一个选项(自 8.5 起),-encoding,用于指定正在读取的文件是什么编码(而不是默认的encoding system 返回的编码猜测)。它所做的只是将文件读入内存并(在内部等效于)eval 内容。

在执行 source 之前,您可以写入任何您想要的变量,包括像 argv 这样的全局变量。有了它(根据需要适当使用 uplevelcatch,也许还有 interp create),您可以模拟将脚本作为子进程运行.但是,不让文件期望处理那样的参数,而是让它定义一个您在采购后立即调用的命令可能更容易。

关于linux - 我们可以将选项传递给 tcl 8.5 中的 tcl source 命令吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37474938/

相关文章:

linux - 使用 awk 计算数字的平均值

c++ - 在 C++ 中将数组作为函数参数传递

bash - TCL/Expect 相当于 Bash $@ 或如何将参数传递给 TCL/Expect 中的衍生进程

arguments - es6-箭头函数-没有重复的命名参数

command-line - 从命令行使用命令行args,stdin,stdout和stderr调用Mathematica程序

linux - Bash 脚本 : How to check if there's is only one root id?

linux - 为什么waitpid不等待进程退出呢?

linux脚本从数据库中读取数据并根据数据在远程linux上发送命令

linux - 长时间禁用中断/抢占会产生什么后果?

linux - for循环从文件运行命令