Script EXPECT boucle foreach

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

  1. Contributeur
    Salut,
    Quelqu'un a une idée d'instruction pour qu'il ne lise pas une ligne vide ?
    Euh... la supprimer ?
    1. 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.
      1. Contributeur
        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$
        >
      2. Contributeur
        @zipe31Oups, petite erreur sur la commande sed ;-(

        À remplacer par
        sed '${/^$/d}' fich
        ;-)
    2. les infos username et password en dur dans un script?

      y'en as qui ont pas peur :)