コマンドラインからマシンにインストールされたTCLのバージョンを取得する非常に簡単な方法を探しています。ほとんどのプログラミング言語では、
languagename -v
必要な情報を提供します。これはtclsh
のオプションではないようです。
echo 'puts $tcl_version;exit 0' | tclsh
しかし、もっと簡単でクロスプラットフォームなものはないのでしょうか? (Microsoftオペレーティングシステムでは、これが大幅に失敗すると思われます。)
-
編集:オペレーティングシステムのコマンドラインから直接実行できるものを探していることを強調するために。 tclsh
を開始すると、あらゆる種類の情報を利用できますが、自動検出を容易にするために、それを回避しようとしています。
これはあまりにも単純に聞こえるかもしれませんが、コマンドを含むスクリプトファイルを作成した場合:
puts $tcl_version
次に、tclsh sillyscript.tclを実行しました。これは、バイナリがPATHにあると仮定して、すべてのプラットフォームで実行されます。それは確かに派手な、派手な、またはきちんとしたものではありませんが、それはその要件を満たします。
====
私は好奇心が強くなったので、引用符なしで試してみました:
echo puts $tcl_version;exit 0 | tclsh
Windowsボックスで問題なく実行できます...たぶん、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の実行
シェルに応じて、次のようになります。
tclsh <<< 'puts [info patchlevel]'