web-dev-qa-db-fra.com

Obtenez la version de TCL à partir de la ligne de commande?

Je cherche un moyen très simple d'installer la version du TCL sur une machine à partir de la ligne de commande. Pour la plupart des langages de programmation, quelque chose comme

languagename -v

fournit les informations que je veux. Cela ne semble pas être une option pour tclsh.

TCL FAQ Q.B21 suggère

echo 'puts $tcl_version;exit 0' | tclsh

mais je me demande s'il y a quelque chose de plus simple et multiplateforme? (Je soupçonne que cela échouerait puissamment sur un système d'exploitation Microsoft.)

-

EDIT: Juste pour souligner que je recherche quelque chose qui peut être exécuté directement à partir de la ligne de commande du système d'exploitation. Il y a toutes sortes d'informations disponibles une fois que vous avez démarré tclsh, mais j'essaie d'éviter cela pour faciliter la découverte automatisée.

51

Cela peut sembler trop simpliste, mais si vous avez créé un fichier de script contenant les commandes:

puts $tcl_version

Et puis exécuté tclsh sillyscript.tcl, qui s'exécuterait sur toutes les plates-formes, en supposant que le binaire est dans PATH. Ce n'est certainement pas chic ou flashy, ni même soigné, mais il satisfait à cette exigence AFAIK.

====

Je suis devenu curieux, alors je l'ai essayé et sans les guillemets:

echo puts $tcl_version;exit 0 | tclsh

S'exécute très bien sur ma boîte Windows ... peut-être que la détection de plateforme avant la détection TCL est une option?

42
Niall Byrne

vous pouvez le faire aussi.

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

mais la meilleure façon, je pense, est par écho.

echo 'puts [info patchlevel];exit 0' | tclsh
echo 'puts $tcl_version;exit 0' | tclsh

=======

bizarre quand j'ai essayé sans les citations, cela n'a pas fonctionné pour moi. exécuter Mac osx

23
Darkninja

Selon votre Shell, cela peut être:

tclsh <<< 'puts [info patchlevel]'