python tcl.eval_【Tcl/tk】多个参数调用之eval的用法

自学Tcl/tk已有半年余,近期终于完成了一个图形化的程序,用于人机交互,并实现自动化监控管理。在编写过程中,遇到了很多意想不到的困难,在此,大致记录一下,权作备忘。

先来看看eval命令的定义:

Eval是用于创造和运行脚本的通用构造。它接受任意多个参数,把它们用分隔符串接起来,然后把串接的结果作为一个脚本处理。

例如,用tcl调用一个外部程序example.exe,我们通常的做法是直接输入命令:

exec example.exe

此时解释器会直接返回外部程序的运行结果(如果有返回值的话)。

可以很容易的将返回值保存到一个变量,例如:

set a [exec example.exe]

此时变量a即是外部程序运行结果。

但是,在大多数情况下,外部程序需要接更多的参数用于控制,此时直接用exec+程序名+参数会得到解释器报错的提示。此时,有两种做法:

将程序名和参数合并写入到一个字符串Var_String, 运行exec $Var_String;但是此种做法限制了参数的变换,实际使用中不方便。除非参数本身就不会变换。

使用eval命令,将所有可能用的参数串接起来,例如:

eval exec example.exe A B C D

上述A B  C D等等是可用的任意参数。也可指定变量,用$A等取出。此时就显得灵活多了。

但是,需要注意的是。Tcl编程在结合上下文时,要灵活掌握“ ”、[ ]、{ }的使用。如果使用eval命令报错,不妨检查一下是否选用了合适的括号。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值