Question

J'aimerais créer un script d'attente qui se connecte au serveur via Telnet et effectue certaines autorisations. J'ai un problème avec l'utilisation des paramètres de script cependant. Basé sur l'homme, je m'attendais à ce que cela fonctionne:

#!/usr/bin/expect -f
spawn telnet $argv1 5038
...

Malheureusement, je récupère ne peut pas lire "argv1": aucune variable de ce type . Comment cela peut-il fonctionner?

Était-ce utile?

La solution

$ argv est une liste Tcl contenant les paramètres de ligne de commande, indexés à partir de 0. Vous voulez:

[lindex $argv 0]

Autres conseils

Les arguments de ligne de commande sont fournis sous forme de liste dans la variable argv, vous pouvez utiliser lindex pour obtenir un élément de cette liste. Ainsi, si le premier argument est l'hôte vers telnet, faites:

spawn telnet [lindex $argv 0] 5038

Voir Variables fournies par le shell dans Shells et index dans Listes

J'ai une erreur similaire, ne peut pas lire "argv0": pas de variable de ce type , lorsque j'ai essayé d'utiliser $ argv0 dans un proc. La solution consistait à y accéder explicitement à partir de l'espace de noms global en utilisant $ :: argv0 .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top