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

Shell et commandes GNU Discussion :

Script automatisation variable vide


Sujet :

Shell et commandes GNU

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2015
    Messages : 27
    Par défaut Script automatisation variable vide
    Bonjour à tous,

    Je suis en train de m'atteler a l'inititation de script sous linux.
    je travaille énormément avec CloudStack (permettant de créé des cloud public/privée) et j'aimerais automatiser certaines tâches.
    Via l'envoi de commande API cloudmonkey (administration en CLI de cloudstack)

    J'essaye pour le moment d'automatiser la création de Network....la commande cloudmonkey pour la création de Network a besoin d'un id.
    Cette ID, j'arrive a le récupérer en les listant et puis l'extractant a partir d'un fichier.

    le bon ID est bien récupéré mais lorsque que je veux l'utiliser pour l'incorporé a la commande cloudmonkey de création de network l'erreur ci-dessous apparait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Unable to execute API command createnetwork due to invalid value. Invalid parameter vpcid value= due to incorrect long value format, or entity does not exist or due to incorrect parameter annotation for the field in api cmd class
    La variable est bonne puisque j'ai testé avec echo juste avant la commande cloudmonkey.
    C'est le seul ID que je récupère a partir d'une autre commande... la variable est tvpcid

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    listVPC=$(cloudmonkey -c $domaine listVPCs filter=id,name)
    echo $listVPC|sed 's/\============/\n/g' > TempListVPC.txt
    line=$(grep $vpcname TempListVPC.txt)
    tvpcid=$(grep -oP '(?<=id =).*?(?= name)' <<< "$line")
    rm TempListVPC.txt
     
    #création Network Tier 
    netdisplay="${domaine}Net"
    netname="${domaine}Net"
    cloudmonkey -c $domaine createNetwork vpcid=$tvpcid displaytext=$netdisplay name=$netname networkofferingid=$networkofferingid zoneid=$zoneid gateway=$gateway netmask=$netmask
    Y'a t'il une erreur dans le code ou une façon particuliere d’utiliser une variable extrait d'un fichier ?

    merci pour toute aide,

    Cordialement,
    N.B

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 636
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 636
    Par défaut
    Bonjour,

    tu peux mettre un set -x dans ton script avant l'exécution des commandes qui posent problème pour voir ce qui se passe et qui pourrait réinitialiser la variable.
    tu referme le debuggage avec set +x après les commandes problématiques.

    tu devrais aussi prendre soin d'encadrer les variables avec des guillemets, partout, tout le temps.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2015
    Messages : 27
    Par défaut
    Hello !

    Merci pour les "tips" !

    J'ai finalement trouvé.....il y'avait des espaces dans la variable.
    Résolu avec la ligne suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    vpcid="$(echo -e "${tvpcid}" | tr -d '[:space:]')"
    ++

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 636
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 636
    Par défaut
    je ne suis pas certain que tout ceci soit indispensable :
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    vpcid="${tvpcid// }"
    mais je trouve bizarre de devoir enlever tous les espaces. :/
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Membre averti
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2015
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2015
    Messages : 27
    Par défaut
    Hello,

    Je testerais avec ta modification, merci.
    Pour le coup, je pense qu'il y'a normalement d'optimisation a faire dans mon code, pour l’instant, j'essaye déjà de leur faire marcher.
    Pour les espaces, je sais pa snon-plus mais mon extraction de ligne du fichier texte doit pas être génial.

    Je l'améliorerai au fur et a mesure de ma progression en script

    Cordialement,
    N.B

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

Discussions similaires

  1. [Tableaux] Test variable à vide
    Par hari37 dans le forum Langage
    Réponses: 9
    Dernier message: 18/12/2006, 20h51
  2. test variable vide
    Par vince2005 dans le forum Langage
    Réponses: 2
    Dernier message: 02/10/2006, 15h00
  3. Faire une boucle avec des variables vides ?
    Par byloute dans le forum Linux
    Réponses: 5
    Dernier message: 23/02/2006, 09h33
  4. Variable vide?
    Par LordBob dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 06/02/2006, 16h23
  5. script JS & variable globale
    Par MANU_2 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/09/2005, 08h27

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