====== unknown ====== Gère les tentatives d'utiliser des commandes inexistantes ===== Syntaxe ===== unknown cmdName ?arg arg ...? ===== Description ===== Cette commande est appelée par l'interpréteur Tcl chaque fois qu'un script essaie d'appeler une commande qui n'existe pas. L'implémentation d'**unknown** ne fait pas partie du noyau Tcl; en fait, c'est une fonction de bibliothèque définie par défaut quand Tcl démarre. Vous pouvez surcharger **unknown** pour changer sa fonctionnalité. Si l'interpréteur Tcl rencontre un nom de commande pour lequel il n'y a pas de commande définie, alors Tcl vérifie l'existence d'une commande nommée **unknown**. S'il n'y a pas de commande de ce nom, alors l'interpréteur retourne une erreur. Si la commande **unknown** existe, alors elle est appelée avec les arguments consistant des nom et arguments pleinement substitués de la commande originale inexistante. La commande **unknown** typiquement fait des choses comme chercher à travers des répertoires de bibliothèque une commande avec le nom //cmdName//, ou développer un nom de commande abrégé, ou exécuter automatiquement des commandes inconnues en tant que sous-processus. Dans quelques cas (tel que l'expansion d'abréviations) **unknown** changera légèrement la commande originale et alors la (re-)exécutera. Le résultat de la commande **unknown** est utilisé comme résultat de la commande inexistante originale. L'implémentation par défaut d'**unknown** se comporte comme suit. Elle appelle en premier la fonction de bibliothèque [[library]] pour charger la commande. Si cela réussit, alors elle exécute la commande originale avec ses arguments originaux. Si l'auto-load échoue alors **unknown** appelle library pour voir si il y a un fichier exécutable de nom //cmdName//. Si c'est le cas, elle appelle la commande Tcl [[:tcl:exec]] avec //cmdName// et tout les //args// comme arguments. Si //cmdName// peut être auto-exécuté, **unknown** vérifie si la commande a été appelée au premier plan et en dehors de quelconque script Si c'est le cas, alors **unknown** suit deux étapes supplémentaires. D'abord, elle regarde si //cmdName// a une des trois formes suivantes: !!, !'[277], ou ^old^'''new?^?. Si c'est le cas, alors **unknown** produit des substitutions d'historique de la même façon que csh pour ces constructions. Finalement, **unknown** vérifie si cmd est une abréviation unique d'une commande Tcl existante. Si c'est le cas, elle développer le nom de la commande et exécute la commande avec les arguments originaux. Si aucun des efforts précédents n'ont pu exécuter la commande, **unknown** génère une erreur. Si la variable globale auto_noload est définie, alors l'étape auto-load est sautée. Si la variable globale auto_noexec est définie alors l'étape auto-exec est sautée. Sous des circonstances normales la valeur de retour de **unknown** est la valeur de retour de la commande qui a été éventuellement exécutée. ===== Exemples ===== ===== Voir aussi ===== {{tag>tcl}}