从命令行获取TCL的版本?

时间:2012-02-08 19:30:52

标签: tcl

我正在寻找一种非常直接的方法,可以从命令行获取安装在计算机上的TCL版本。对于大多数编程语言来说,就像

那样
languagename -v

提供我想要的信息。这似乎不是tclsh的选项。

TCL FAQ Q.B21建议

echo 'puts $tcl_version;exit 0' | tclsh

但我想知道是否还有更直接和跨平台的东西? (我怀疑这会在微软操作系统上失败。)

-

编辑:只是为了强调我正在寻找可以直接从操作系统命令行执行的东西。一旦你开始tclsh,就会有各种可用的信息,但我试图避免这种情况,以简化自动发现。

3 个答案:

答案 0 :(得分:42)

这可能听起来过于简单,但如果你制作了一个包含命令的脚本文件:

puts $tcl_version

然后运行tclsh sillyscript.tcl,它将在所有平台上执行,假设二进制文件在PATH中。它当然不是华丽或华丽,甚至是整洁,但它满足了AFAIK的要求。

====

我很好奇,所以我试了一下,没有引号:

echo puts $tcl_version;exit 0 | tclsh

在我的windows box上执行得很好......也许在TCL检测之前进行平台检测是一种选择吗?

答案 1 :(得分:23)

你也可以这样做。

bash-3.2$ tclsh
% puts $tcl_version
8.6
% info patchlevel
8.6.0

但我认为最好的方法是通过回声。

echo 'puts [info patchlevel];exit 0' | tclsh
echo 'puts $tcl_version;exit 0' | tclsh

=======

当我尝试不使用引号时它很不适合我。运行Mac osx

答案 2 :(得分:7)

根据你的shell,它可能是:

{{1}}