我正在寻找一种非常直接的方法,可以从命令行获取安装在计算机上的TCL版本。对于大多数编程语言来说,就像
那样languagename -v
提供我想要的信息。这似乎不是tclsh
的选项。
echo 'puts $tcl_version;exit 0' | tclsh
但我想知道是否还有更直接和跨平台的东西? (我怀疑这会在微软操作系统上失败。)
-
编辑:只是为了强调我正在寻找可以直接从操作系统命令行执行的东西。一旦你开始tclsh
,就会有各种可用的信息,但我试图避免这种情况,以简化自动发现。
答案 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}}