问题标签 [tclsh]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
34 浏览

tcl - tclsh 中的许多 OR 语句

我正在尝试在 tclsh 中执行以下代码:

在 tclsh shell 中,我收到以下错误:

这里不合法的字符是什么?我怀疑 '<' 是问题,但后来我运行了这个命令:

我按预期打印了“是”。

0 投票
1 回答
149 浏览

exec - 在 shell 脚本中使用 tclsh 时 exec 没有输出

我这里有一个奇怪的情况。我需要在脚本 getValue.itcl 上运行 exec,但如果我尝试使用输入重定向内联运行它,我将没有得到任何输出。抱歉,如果我使用了错误的术语。

内联使用它有助于此脚本的其他方面,否则我需要分开各个部分。我正在使用 tcl 8.0(没有选项)。

示例:当我使用作为 tclsh 重新启动的 shell 脚本时,此方法有效。

但是,如果我在脚本中以不同的方式运行它,它将不起作用。

这不起作用:

我不会得到任何输出,我看不出在第一种方法中使用 tclsh 与在第二种方法中简单地执行命令时有什么区别。

谢谢

0 投票
1 回答
81 浏览

regex - 不同版本的tcl给出不同的答案

我在 tcl 8.0 版本中运行此功能。

tcl 8.6 中的相同代码,输出为1但在 tcl 8.0 中为0. 我正在检查字符串是否仅包含 tcl 8.0 中的 9 位数字。

任何帮助如何使它在 tcl 8.0 版本中工作。

0 投票
3 回答
1360 浏览

tcl - 如何读取存储值的变量名称

TCL 程序示例:

在上面这个打印输出的程序中,$10 = 10但我想得到a = 10输出。必须读取传递值的变量以及相应的值。有没有办法读取变量名。

0 投票
1 回答
578 浏览

shell - 如何绕过窗口外壳(wish/tclsh)GUI并使用终端?

我有一个软件包,它有一个用 tclsh/wish 编写的非常繁琐的 GUI。我想通过终端控制软件并制作一些脚本来运行它。wish GUI 很长(超过 37000 行),所以我想避免详细阅读它并编写相应的命令行界面。假设我已经知道要按下的按钮序列和要填充的输入字段。有没有办法通过终端控制这个愿望 GUI 怪物?

GUI通过以下方式调用:

即使我删除了 -f 标志,它也不会接受任何终端输入或显示 % 提示。我不明白 -n 标志后面的部分。如果我删除它,程序运行相同。

即简单地调用

做同样的事情。

我也尝试了 -file 标志并为外部文件提供命令,但希望在定义所有内部变量和例程之前尝试输入这些命令,因此导致命令无法识别。

任何人都可以指出一些关于希望脚本的有用资源吗?

0 投票
2 回答
336 浏览

python - 与 Perl 和 Python 相比,TCL 中的正则表达式模式表现不同

我正在尝试使用正则表达式从字符串中提取子字符串。以下是Python(给出所需结果)中的工作代码

Python 解决方案

Perl 解决方案

TCL解决方案

但是,当我尝试在 中使用这种方法时Tcl,它给了我不同的结果。有人可以评论这种行为吗

0 投票
2 回答
1594 浏览

tcl - 在 tcl 脚本中,我如何使用 puts 将字符串同时写入控制台和文件?

有没有办法可以同时将 puts 的输出发送到屏幕和日志文件?目前,我的脚本中一个接一个地包含上述两行来实现这一点。

或者 tcl 中还有其他解决方案吗?

0 投票
0 回答
89 浏览

regex - 需要帮助来修复一个将一个文件转换为另一个文件的 TCL 脚本

我有一个 TCL 脚本。此 tcl 脚本的输入是一个 .txt 文件(基本上是日志文件),输出是配置文件。表示此脚本正在将 .txt 文件转换为 .config 文件。

下面是 tcl 脚本:


使用以下命令运行上面的脚本:


输入文件(.txt)的部分内容


输出文件(config)的部分内容,由脚本生成:


现在的问题是,如果特定步骤不存在“SCK_DEBG:MKS”,则此 tcl 脚本会将 txt 文件转换为配置文件而不会出现任何错误。

理想情况下,如果存在“SCK_DEBG: MKS”,则脚本应在最后一个括号中使用 MKS 位。例如:SCK_STEP_14 具有 MKS,因此正确的输出应该是:

但不是该脚本在输出文件中给出以下输出。

在这里,如果 MKS 存在于该特定步骤,则在最后一个括号脚本中应使用 MKS 中的位,否则应选择 TDO 位。但在所有情况下,脚本都只选择 TDO 位。

...我尝试了以下方法来使该脚本正常工作,但仍然无法正常工作:在脚本中,MT_DEBG 存在 3 个“if”语句,在我的 txt 文件中不存在 MT_DEBG,而不是存在 SCK_DEBG所以我已经更换了它,但它不起作用。然后像 MKS.*MT_DEBG 或 MKS.*SKC_DEBG 这样的语法在我的 txt 中根本不存在,所以我已经评论了这个“if”语句并重新运行了脚本。但它仍然无法正常工作。

我从我的上级那里得到了这个 txt 到配置文件的转换脚本。但是他现在不在,所以这就是为什么在这里写。

由于我处于TCL的初始阶段,请有人帮助我。

0 投票
1 回答
126 浏览

tcl - 从具有多个争论的另一个 tcl 脚本调用一个 tcl 脚本

我正在从当前脚本调用脚本(tclscript),看到这个“无效的命令名错误”,tcl 脚本只是检查是否安装了正确版本的包。

输出:

不明白为什么我得到这个“无效的命令名错误”任何人都可以帮忙

0 投票
2 回答
743 浏览

list - Tcl lappend returning unexpected results

I am going through the Tcl tutorial and the lappend operator is returning unexpected results.

I am running this on F5 load-balancing hardware's command line interface. Here is the relevant system info:

I attempted every permutation of variable grouping I could think of, and I was still unable to get results that I expect. It appears as though there is a buffer that is holding on to all the results of the command: 'puts' command and using it in the 'lappend' command. Here is the lines I executed. The first few 'puts' are just to show that nothing has been initialized yet:

I can't imagine that this behavior is intended.

Here's how I would imagine this should work:

If the answer is that lappend does not modify the first argument in place, and I have to use a set command to save the results of the lappend command, that is fine; However, the lappend command does not appear to be behaving in a consistent manner.

Thanks in advance for any help/insight.