~ / howtos /

HOWTO Tcl

Copyright © 2007, Renaud Blanch.
last update : 22 novembre 2007

Introduction

Présentation

Tcl est un langage de script développé dans les années 80 par John Ousterhout. Il doit son relatif succès à la boîte à outils de construction d'interface graphiques qui l'accompagne : Tk, qui permet de développer rapidement des interfaces graphiques de manière portable.

Tcl est un langage interprété. Il peut être utilisé de manière interactive en invoquant l'interpréteur tclsh dans une console ($ dénote l'invite du shell normal dans les exemples ci-dessous). Tcl affiche alors une invite % et attend les entrées de l'utilisateur. À chaque fin de ligne, si le texte entré forme une ou plusieurs commandes complètes, ces commandes sont évaluées, le résultat de la dernière est affiché, puis une nouvelle invite est proposée. Si la commande n'est pas complète, elle peut être poursuivie sur les lignes suivantes.

$ tclsh
% info tclversion
8.4
% puts "Hello world!"
Hello world!
% foreach i { un deux } {
    puts $i
}
un
deux

Les commandes peuvent aussi être groupées dans un ficher de script qui pourra être exécuté ensuite comme un programme. Dans ce cas, Tcl lira les lignes du fichier une à une et les interprétera dans l'ordre, exactement comme si elles avaient été entrée dans le mode interactif.

$ echo 'puts "Hello world!"' > test.tcl
$ tclsh test.tcl
Hello world!

Distributions

Tcl s'installe facilement sur tout système. Le site de téléchargement de Tcl/Tk propose des archives avec les dernières sources à compiler soi-même. La société ActiveState propose une distribution binaire ActiveTcl gratuite prête à l'emploi pour un grand nombre de systèmes.

Le language

Commandes

Les règles du language sont simples quoique parfois déconcertantes par les effets qu'elles produisent. Un script se compose d'une succession de commandes séparées par des retour à la ligne ou (moins fréquemment) des points-virgules. Une commande est constituée d'un ou plusieurs mots séparés par des espaces. Le premier mot est le nom de la commande et les mots suivants sont ses arguments.

% set a 1
1
% set b 2; set c trois
trois

Variables

Les structures de données

Les structure de contrôle

Annexes

Rendre un script exécutable

Un script Tcl peut être rendu exécutable sur les systèmes disposant d'un shell (Unix-likes) en ajoutant quelques lignes “magiques” au début du fichier :

#!/bin/sh
# next line restart with tclsh \
exec tclsh "$0" "$@"

puts "Hello world!"

La première ligne commence par #!, elle fait que le script sera exécuté par /bin/sh, un shell présent sur tous les systèmes. La seconde ligne est un commentaire pour sh. La troisième ligne redémare le script en utilisant le tclsh présent sur le système.

Au redémarrage, la première ligne est vue comme un commentaire par Tcl (elle commence par #. Puisque la seconde ligne se termine par \ elle se poursuit sur la ligne suivante. Les lignes 2 et 3 sont donc considérées ensemble comme un commentaire puisque la ligne 2 commence aussi par un #. Le script est donc finalement interprété par Tcl à partir de la ligne 4.

Pour rendre le script effectivement exécutable, il faut changer ses droits à l'aide de la commande chmod :

$ chmod a+x test.tcl
$ ./test.tcl
Hello world!