Eggdrop & Tcl

Base de connaissances eggdrop et tcl

Outils pour utilisateurs

Outils du site


tcl:unknown

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 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

tcl/unknown.txt · Dernière modification : 2023/10/13 09:37 de CrazyCat