Получить версию TCL из командной строки?
Я ищу очень простой способ получить версию TCL, установленную на машине, из командной строки. Для большинства языков программирования что-то похожее на строки
languagename -v
предоставляет информацию, которую я хочу. Это не похоже на вариант tclsh
.
TCL FAQ Q.B21 предлагает
echo 'puts $tcl_version;exit 0' | tclsh
но мне интересно, есть ли что-то более прямолинейное и кросс-платформенное? (Я подозреваю, что это может сильно не повлиять на операционную систему Microsoft.)
-
EDIT: просто чтобы подчеркнуть, что я ищу что-то, что может быть выполнено непосредственно из командной строки операционной системы. Там, где вы начинаете tclsh
, доступны все виды информации, но я стараюсь избегать этого, чтобы облегчить автоматическое обнаружение.
Ответы
Ответ 1
Это может показаться слишком упрощенным, но если вы создали файл script, содержащий команды:
puts $tcl_version
И затем запустил tclsh sillyscript.tcl, который будет выполняться на всех платформах, предполагая, что двоичный файл находится в PATH. Это, конечно, не фантазия или кричащий, или даже опрятный, но он удовлетворяет этому требованию AFAIK.
====
Мне стало любопытно, поэтому я попробовал и без кавычек:
echo puts $tcl_version;exit 0 | tclsh
Выполняется просто отлично на моем окне окна... возможно, обнаружение платформы до обнаружения TCL является опцией?
Ответ 2
вы тоже можете это сделать.
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
Ответ 3
В зависимости от вашей оболочки это может быть:
tclsh <<< 'puts [info patchlevel]'