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 :

variable dans boucle


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Homme Profil pro
    rs
    Inscrit en
    Novembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : rs

    Informations forums :
    Inscription : Novembre 2016
    Messages : 15
    Points : 10
    Points
    10
    Par défaut variable dans boucle
    Bonjour,

    Je me retrouve confronté à un problème en bash qui est certainement simple à résoudre mais ne voit pas comment.
    Je souhaiterais ajouter dans un fichier une suite de nombre déterminée ainsi que la valeur contenu dans un autre fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #affichage du contenu de fichier : pas de problème
    var='cat file.txt'
    echo $var
    par contre je n'arrive pas à afficher la variable dans une boucle dans le but de traiter plusieurs fichiers en même temps :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for a in *.txt;
    do
    var='cat $a'
    echo $var
    touch $a-nouveau.txt
    echo "10 25 50 $var" >> $a-nouveau.txt
    done;
    Merci pour votre aide

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    Même question, même réponse.

    Les variables ne sont pas interprétées quand elles sont protégées par des 'simple quotes'. Donc var ne varie jamais.

    De plus, tu devrais lire le manuel (man bash) au paragraphe des substitutions des commandes $( ). Cela sera instructif pour toi.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Membre à l'essai
    Homme Profil pro
    rs
    Inscrit en
    Novembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : rs

    Informations forums :
    Inscription : Novembre 2016
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    je ne trouve pas dans le manuel, je pense du coup partir vers quelque chose comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for a in *.txt;
    do echo $a > fichiersatraiter
    puis me servir du contenu de 'fichiersatraiter' afficher les valeurs et les mettre dans les nouveaux fichiers d'interets ($a-nouveau.txt)

  4. #4
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Je ne suis pas sûr du véritable but.
    Veux-tu afficher le contenu du fichier txt dans la console, puis ajouter "10 25 50" en première ligne d'un nouveau fichier, suivi du contenu du fichier txt initial ?

    Si oui, le code ressemblerait plus à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for a in *.txt
    do 
        cat "$a"
        b="${a%%.*}-nouveau.txt"
        echo "10 25 50" > "$b"
        cat "$a" >> $b
    done
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #5
    Membre à l'essai
    Homme Profil pro
    rs
    Inscrit en
    Novembre 2016
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : rs

    Informations forums :
    Inscription : Novembre 2016
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    oui c'est exactement ca!
    il me manquait cette étape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    b="${a%%.*}-nouveau.txt"
    Merci beaucoup

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

Discussions similaires

  1. Récupération de variables dans boucle
    Par crughon dans le forum Langage
    Réponses: 10
    Dernier message: 04/03/2010, 16h45
  2. Comparaison de variables dans boucles
    Par benoit.r dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/07/2009, 17h31
  3. Problème avec variable dans boucle DO WHILE
    Par bandit_debutant dans le forum Langage
    Réponses: 13
    Dernier message: 25/02/2008, 16h34
  4. affecter variable dans boucle FOR batch
    Par efferalgan dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 25/10/2007, 14h25
  5. [SHELL] Variable dans boucle for
    Par magicwill dans le forum Linux
    Réponses: 6
    Dernier message: 11/08/2007, 11h31

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