文件删除命令cribs在tcl独立应用程序中

时间:2016-06-07 10:03:30

标签: tcl tk

我的tcl脚本中有这个命令

file delete {*}[glob -nocomplain /tmp/*.list]

删除/tmp目录中扩展名为.list的文件。使用tclsh filename运行它时工作正常。

但是当我编译一个tcl独立应用程序(The Simplest Steps to Converting TCL TK to a Stand Alone Application)时,它会抛出一个错误,说它是无效命令。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在Tcl 8.5中添加了{*}语法。鉴于错误,您的独立版本可能较旧。您应该将其升级到8.5或8.6,或者可以使用向后兼容的等效项替换问题命令:

eval [linsert [glob -nocomplain /tmp/*.list] 0 file delete]]

linsert确保glob命令的输出是一个正确形成的列表,前面加前缀file delete,这样在列表上调用eval将导致调用{{ 1}}包含所有文件名,不评估文件名本身中的任何内容。

此类问题是添加扩展语法(file delete)的原因。

相关问题