Подтвердить что ты не робот

Получить версию TCL из командной строки?

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

languagename -v

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

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

echo 'puts $tcl_version;exit 0' | tclsh

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

-

EDIT: просто чтобы подчеркнуть, что я ищу что-то, что может быть выполнено непосредственно из командной строки операционной системы. Там, где вы начинаете tclsh, доступны все виды информации, но я стараюсь избегать этого, чтобы облегчить автоматическое обнаружение.

4b9b3361

Ответ 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]'