[expect] afficher résultat d'un "send"

Fermé
any-one - 6 janv. 2010 à 15:54
 any-one - 7 janv. 2010 à 11:23
Bonjour,
pour mon boulot j'utilise un logiciel qui sait executer des script EXPECT pour faire des requêtes sur des équipements Cisco.

je cherche à faire à voir uniquement le résultat de cette commande :
show interface FastEthernet0/5 | incl FastEthernet

cette commande permet d'obtenir l'état de l'interface

je n'arrive pas à obtenir uniquement le résultat de cette commande qui devrait être du genre :
FastEthernet0/5 is Down, line procol is Down (not connected)

j'ai essayé :
exp_send "show interface FastEthernet0/5 | incl FastEthernet \r"
expect "#"
set output $expect_out(buffer)
puts "output contains '$output'"


mais ça me donne :
show interface FastEthernet0/5 | incl FastEthernet
FastEthernet0/5 is Down, line procol is Down (not connected)
$hostname#

donc il y a trop d'infos dans le résultat.

Si quelqu'un peut m'aider je lui en serai éternellement reconaissant

Merci
A voir également:

1 réponse

j'ai trouvé comment faire :


send "show interface FastEthernet0/$interface_id$ | incl FastEthernet\r"
expect "show interface FastEthernet0/$interface_id$ | incl FastEthernet\r\n"
expect -re (.*)\r\n
puts "'$expect_out(1,string)'"


j'obtiens : 'FastEthernet0/8 is up, line protocol is up (connected)'


Maintenant si je fais ça :

send "show mac-address-table | incl Fa0/$interface_id$\r"
expect "show mac-address-table | incl Fa0/$interface_id$\r\n"
expect -re (.*)\r\n
puts "'$expect_out(1,string)'"

j'obtiens : ' 10 0040.8c39.49bd DYNAMIC Fa0/8'

comment faire pour extraire seulement "0040.8c39.49bd" ?


Merki
0