从命令行获取TCL的版本?

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

languagename -v 

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

TCL常见问题Q.B21build议

 echo 'puts $tcl_version;exit 0' | tclsh 

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

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

这听起来可能太简单了,但是如果你创build了一个包含以下命令的脚本文件:

 puts $tcl_version 

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

====

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

 echo puts $tcl_version;exit 0 | tclsh 

我的窗口框执行得很好…也许平台检测之前的TCL检测是一个选项?

你也可以这样做。

 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

取决于你的shell,它可能是:

 tclsh <<< 'puts [info patchlevel]'