IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

[BASH]Problème création d' un script


Sujet :

Linux

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 19
    Points : 7
    Points
    7
    Par défaut [BASH]Problème création d' un script
    J'ai un problème pour la création d'un scripte d'automatisation de tache.
    J'utilise un fichier texte qui contient tout les informations qui sont nécessaire à mon script.

    Voila mon scipt si-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    #!bin/bash
    n=1
     
    for serveur in $(cat host.cfg)
    do
    IP=${serveur#*,}
    done
     
    for serveur in $(cat host.cfg)
    do name=${serveur%,*}
     
    echo "define host{ " >>./toto.cfg
    echo "      use             generic-switch ">>./toto.cfg
    echo "      host_name       $name _A1 " >>./toto.cfg
    echo "      alias                $name " "echo$((n=1))  " >>./toto.cfg
    echo "      address         $IP " >>./toto.cfg
    echo "      hostgroups      RouteurB1 " >>./toto.cfg
    echo "      parents          Routeur1 " >>./toto.cfg
    echo "      } " >>./toto.cfg
    done
    j'aimerai arriver à se résultat mais apres multiple recherche rien n'aboutie.
    Voila le résultat que j'aimerai avoir lors de l'execution de mon script.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    define host{
          use             generic-switch
          host_name       831_00512 _A1
          alias               831_00512 1
          address          192.168.0.1
          hostgroups      RouteurB1
          parents          Routeur1
          }
    define host{
          use             generic-switch
          host_name       831_00775 _A1
          alias               831_00775 2
          address          192.168.0.2
          hostgroups      RouteurB1
          parents           Routeur1
          }
    define host{
          use             generic-switch
          host_name       831_00774 _A1
          alias                831_00774 3
          address           192.168.0.3
          hostgroups      RouteurB1
          parents           Routeur1
          }

    Voici ce que contient mon fichier texte qui sert de référence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    831_00512,192.168.0.1
    831_00775,192.168.0.2
    831_00774,192.168.0.3
    Merci infiniment pour votre aide.

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 731
    Points : 31 054
    Points
    31 054
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par crasho007 Voir le message
    J'ai un problème pour la création d'un scripte d'automatisation de tache.
    J'utilise un fichier texte qui contient tout les informations qui sont nécessaire à mon script.

    Voila mon scipt si-dessous

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    #!bin/bash
    n=1
     
    for serveur in $(cat host.cfg)
    do
    IP=${serveur#*,}
    done
     
    for serveur in $(cat host.cfg)
    do name=${serveur%,*}
     
    echo "define host{ " >>./toto.cfg
    echo "      use             generic-switch ">>./toto.cfg
    echo "      host_name       $name _A1 " >>./toto.cfg
    echo "      alias                $name " "echo$((n=1))  " >>./toto.cfg
    echo "      address         $IP " >>./toto.cfg
    echo "      hostgroups      RouteurB1 " >>./toto.cfg
    echo "      parents          Routeur1 " >>./toto.cfg
    echo "      } " >>./toto.cfg
    done
    j'aimerai arriver à se résultat mais apres multiple recherche rien n'aboutie.
    Voila le résultat que j'aimerai avoir lors de l'execution de mon script.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    define host{
          use             generic-switch
          host_name       831_00512 _A1
          alias               831_00512 1
          address          192.168.0.1
          hostgroups      RouteurB1
          parents          Routeur1
          }
    define host{
          use             generic-switch
          host_name       831_00775 _A1
          alias               831_00775 2
          address          192.168.0.2
          hostgroups      RouteurB1
          parents           Routeur1
          }
    define host{
          use             generic-switch
          host_name       831_00774 _A1
          alias                831_00774 3
          address           192.168.0.3
          hostgroups      RouteurB1
          parents           Routeur1
          }

    Voici ce que contient mon fichier texte qui sert de référence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    831_00512,192.168.0.1
    831_00775,192.168.0.2
    831_00774,192.168.0.3
    Merci infiniment pour votre aide.
    Pourquoi 2 boucles successives ? Avec une seule boucle tu récupères la ligne que tu découpes en host + ip puis t'écris le fichier output

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #!/bin/sh
     
    # Création des canaux input et output
    exec 3<host.cfg
    exec 4>toto.cfg
     
    # Lecture de l'input
    while read info 0<&3
    do
        # Découpage de l'info
        host=`echo $info |cut -f1 -d,`
        ip=`echo $info |cut -f2 -d,`
     
        # Ecriture de l'output
        (
            echo "define host {"
            echo "use             generic-switch"
            echo "host_name       $host"
            echo "alias                $host"
            echo "address           $ip"
            echo "hostgroups      RouteurB1"
            echo "parents           Routeur1"
            echo "}"
        ) 1>&4
    done

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Merci infiniment.
    Oui pourquoi faire 2 boucles alors que dans une ont peu tout faire. Bonne question. Je suis pas expert en script loin de la.
    Merci du coup de main

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. création d'un script en bash
    Par kandy dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 12/02/2010, 13h16
  2. problème execution d'un script bash
    Par molbento dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 24/08/2009, 16h59
  3. [BASH] Création de deux scripts
    Par RIPS78 dans le forum Linux
    Réponses: 5
    Dernier message: 09/02/2009, 09h36
  4. Probléme création fichier dans un script
    Par nicowax dans le forum Unix
    Réponses: 5
    Dernier message: 15/01/2009, 13h19
  5. [débutant] [BASH] problème script backup
    Par julien.63 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 13/04/2008, 18h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo