Script expec, caractere spéciaux dans le pasw

Résolu
angelz Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,


je suis assez nouveau sur linux, t je vourai faire un script avec expect qui se connecte a un router et y lance des comande.
tout marche sauf pour le password enable, car dans le mot de passe il y a un $

voici mon script


#!/usr/bin/expect -f


set timeout -1
spawn telnet "192.168.2.1"

expect "Username:"
send -- "login\r"

expect "Password:"
send -- "pass\r"

expect ">"
send -- "en\r"

expect "Password:"
send -- "134$S0\r"

expect "#"
send -- "sh run\r"

expect "#"
send -- "quit\r"

seulement qd j'execute le script,
j'obtient :

spawn telnet 192.168.2.1
Trying 192.168.2.1...
Connected to 192.168.2.1.
Escape character is '^]'.
User Access Verification

Username: login
Password:
Router>en
Password: can't read "S0": no such variable
while executing
"send -- "123$S0\r""
(file "telnet_script" line 20)

je crois que le caractere $ compris dans le password enable pose probleme.

est-ce que quelqu'un a une solution svp

merci de votre aide

angelz
A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

T'as essayé :
expect "Password:"
send -- "134\$S0\r" 
en l'échappant ?

Ou en entourant l'expression de quotes simples :
expect "Password:"
send -- '134$S0\r' 

0
angelz Messages postés 67 Date d'inscription   Statut Membre Dernière intervention  
 
merci beaucoup j'ai essayer avec

"123\$S0" et c'est passé

merci encore :-)
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
De rien ;-))
0