Règle 7

 

Substitution de commandes

Si un mot contient un crochet ouvrant « [ », l’interpréteur opère une substitution de résultat de commande : il appelle lui-même l’interpréteur pour exécuter le script délimité par le crochet fermant « ] » correspondant. Ce script peut contenir un nombre a priori quelconque de commandes, et jouit des mêmes propriétés que tout script. Lorsque le script a été interprété, le résultat de la dernière commande remplace dans le mot l’ensemble des caractères du script, ainsi que les crochets qui le délimitaient. Le nombre de substitutions de résultats de commandes est illimité dans un mot. Il n'y a pas de substitution si le mot dans son ensemble est entouré d'accolades « { » et « } ».

Exemples

 puts [join [list a b c] :]
   => a:b:c
 puts {[join [list a b c] :]}
   => [join [list a b c] :]

Note 1

Le code :

 puts [set l {a b c}
       llength $l]

est tout à fait légal mais pas vraiment habituel. Le code suivant est nettement plus lisible :

 set l {a b c}
 puts [llength $l]

Discussions


Douze règles