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 :

[bash] Peut on importer des variables avec While IFS?


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 26
    Par défaut [bash] Peut on importer des variables avec While IFS?
    Bonjour à tous,

    J'ai réussi à utiliser correctement la bouche While avec le paramètre $IFS pour découper un fichier ligne par ligne et récupérer diverses partie de chaque ligne dans une variable.

    Par contre toutes variables indiquées dans le fichier à traiter sont prisent comme du texte au lieu d'une variable. En examinant le fonctionnement du script, les variables sont protégée par des '

    Y a t'il une solution pour qu'elles ne soient pas protégée?

    Voici un exemple raccourcis du script en question :
    fichier test.sh
    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
    #!/bin/bash
     
    set -x
     
    #nom de code de version ubuntu (hardy, jaunty, karmic, ...)
    codename="karmic"
     
    #on découpe l'entrée standard et on affecte chaque portion de ligne à une variable
    while IFS=',' read paquet depot cle option
     do    
       #suppression des espaces et tabulation en début et fin de la portion de la ligne demandé via l'argument de fonction scanlist
     
       depot=$(echo $depot | sed 's/^[ \t]*//;s/[ \t]*$//')
     
       #sortie pour le test visuel
       echo $depot
     
     done < <(grep ^[+] proglist.txt) | sort -u # on trit le fichier en unique et l'injecte en entrée
    Fichier proglist.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # Client de messagerie Empathy
    +empathy, deb http://ppa.launchpad.net/telepathy/ppa/ubuntu $codename main #Empathy, FA3A1271, facultatif
    J'espère avoir fait au plus simple pour ne pas surcharger le sujet...

  2. #2
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 26
    Par défaut
    J'avais oublié de poster une proposition de solution qui me semble grossière mais qui fonctionne.

    Dans le fichier proglist.txt, si je remplace la variable $codename par CODENAME et dans le fichier test.sh

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       depot=$(echo $depot | sed 's/^[ \t]*//;s/[ \t]*$//')
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       depot=$(echo $depot | sed 's/^[ \t]*//;s/[ \t]*$//;s/CODENAME/'$codename'/;')
    Tout fonctionne sans problème mais peut être une solution un peut plus correcte existe, à mon niveau c'est ce que je peut faire.

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

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

    Je pense que cela dépend de la façon dont est construit 'proglist.txt' :
    si c'est toi qui le rempli, depuis le même script (test.sh), en faisant déjà un sed pour remplacer la version d'Ubuntu, ça peut faire un peu lourdeau;
    sinon, si ça ne te plait vraiment pas, tu peux evaluer echo $depot
    ...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Peut on creer des routines avec SQL
    Par Jamal_71 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/01/2006, 10h37
  2. Réponses: 7
    Dernier message: 23/01/2006, 11h53
  3. peut on typer des variables en php
    Par cedre22 dans le forum Langage
    Réponses: 1
    Dernier message: 17/01/2006, 10h53
  4. petit souci avec des variables avec des fonctions psql
    Par dust62 dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 02/04/2005, 13h45
  5. Importation des mails avec Kmail et Thunderbird ?
    Par axel-erator dans le forum Applications et environnements graphiques
    Réponses: 6
    Dernier message: 30/11/2004, 00h36

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