Получить версию TCL из командной строки? - PullRequest
50 голосов
/ 08 февраля 2012

Я ищу очень простой способ получения версии TCL, установленной на компьютере, из командной строки.Для большинства языков программирования что-то вроде

languagename -v

предоставляет информацию, которую я хочу.Это, кажется, не вариант для tclsh.

В TCL FAQ Q.B21 предлагается

echo 'puts $tcl_version;exit 0' | tclsh

, но мне интересно, есть ли что-нибудь более прямоевперед и кроссплатформенность?(Я подозреваю, что это может сильно не работать в операционной системе Microsoft.)

-

РЕДАКТИРОВАТЬ: просто чтобы подчеркнуть, что я ищу то, что может быть выполнено непосредственно изкомандная строка операционной системы.После запуска tclsh доступны все виды информации, но я стараюсь избегать ее, чтобы упростить автоматическое обнаружение.

Ответы [ 3 ]

42 голосов
/ 08 февраля 2012

Это может показаться слишком упрощенным, но если вы создали файл сценария, содержащий команды:

puts $tcl_version

, а затем запустили tclsh sillyscript.tcl, который выполнялся бы на всех платформах, предполагая, что двоичный файл находится в PATH,Это, конечно, не фантазия, не кричащая, и даже не аккуратная, но она удовлетворяет этому требованию AFAIK.

====

Мне стало любопытно, поэтому я попробовал это и без кавычек:

echo puts $tcl_version;exit 0 | tclsh

Отлично работает на моем окне Windows ... может быть, вариант с обнаружением платформы до обнаружения TCL - вариант?

23 голосов
/ 04 октября 2013

вы тоже можете это сделать.

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

, но я думаю, что лучший способ - через эхо.странно, когда я пытался без цитат, это не работало для меня.под управлением Mac OSX

8 голосов

В зависимости от вашей оболочки, это может быть:

tclsh <<< 'puts [info patchlevel]'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...