Script EXPECT boucle foreach

Gotwol Messages postés 5 Statut Membre -  
nerdzlol Messages postés 6 Statut Membre -
Bonjour, je vous présente mon script :



Le but de celui-ci est de s'authentifier sur des équipements selon une liste lue ligne par ligne et de tester le mot de passe ENABLE des équipements (CISCO).

Le script en lui-même est fonctionnel, seulement je pense que ma boucle présente un problème car le script ne s'arrête pas au dernier équipement mais uniquement lorsqu'il a une erreur, donc il s'arrête à la dernière ligne vide du .txt
Il tente un dernier spawn telnet "tout court" et comme ça ne marche pas, j'ai un retour d'erreur et il s'arrête. Ce n'est pas très grave en soi mais ce n'est pas propre.

Quelqu'un a une idée d'instruction pour qu'il ne lise pas une ligne vide ?

Merci par avance.

3 réponses

zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Salut,
Quelqu'un a une idée d'instruction pour qu'il ne lise pas une ligne vide ?
Euh... la supprimer ?
0
Gotwol Messages postés 5 Statut Membre
 
La ligne est vide. En gros sous vi le .txt donne :

sw-xxx-xxx
sw-yyy-yyy
~

Il lit également la dernière ligne. il ne s'arrête pas après sw-yyy-yyy.
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Comme dit plus haut, il suffit de supprimer cette dernière ligne vide :
> cat -A fich 
a$
b$
c$
$
> sed '$d' fich | cat -A
a$
b$
c$
>


Edit :

> sed '${/^$/d}' fich | cat -A
a$
b$
c$
>
0
zipe31 Messages postés 38797 Statut Contributeur 6 433 > zipe31 Messages postés 38797 Statut Contributeur
 
Oups, petite erreur sur la commande sed ;-(

À remplacer par
sed '${/^$/d}' fich
;-)
0
nerdzlol Messages postés 6 Statut Membre
 
les infos username et password en dur dans un script?

y'en as qui ont pas peur :)
0