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 :

Insérer une variable dans une boucle d'un script bash


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de Hamtaroux
    Femme Profil pro
    Doctorante
    Inscrit en
    Juillet 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Juillet 2019
    Messages : 23
    Par défaut Insérer une variable dans une boucle d'un script bash
    Bonjour tout le monde,

    Est ce possible d’insérer des variable dans une boucle?
    voici ce que j'essaye de faire:

    j'ai 4 variables notées a1,a2,a3 et a4
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a1=4, a2=7, a3=8 et a4=6
    voila ce que j'ai écrit dans un script bash
    for i in `1 1 4`; do
    echo " $a$i"
    done

    je souhaiterais que le résultat me donne:
    cependant ça me donne:
    1
    2
    3
    4



    Est-ce que ce que je souhaite avoir est possible à programmer ou c'est totalement impossible?

    Merci d'avance pour les réponses,

    Le petit Hamster

  2. #2
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut
    Salut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    a2="coucou"
    x=a
    y=${x}2
    echo "${!y}"
    => coucou
    ou sinon on peut jouer avec les listes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    a=(4 7 8 6)
    for ((i = 0; i< ${#a[@]}; i++)) 
    do
    echo " ${a[$i]}"
    done

  3. #3
    Membre averti Avatar de Hamtaroux
    Femme Profil pro
    Doctorante
    Inscrit en
    Juillet 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Juillet 2019
    Messages : 23
    Par défaut Merci!!
    [QUOTE=hizoka;11027408]Salut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    a2="coucou"
    x=a
    y=${x}2
    echo "${!y}"
    => coucou

    ca marche ! MERCI !!!!!

    for i in `seq 1 1 4`; do
    > x=a
    > y=${x}$i
    > echo "${!y}"
    > done
    4
    7
    8
    6

  4. #4
    Membre averti Avatar de Hamtaroux
    Femme Profil pro
    Doctorante
    Inscrit en
    Juillet 2019
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Doctorante

    Informations forums :
    Inscription : Juillet 2019
    Messages : 23
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Al2=`echo $c $c2 | awk '{print 1/3 "\t" 2/3 "\t" $2/$1}'`
    Al3=`echo $c $c2 | awk '{print 2/3 "\t" 1/3 "\t" ($2*2)/$1}'`
    Al4=`echo $c $c2 | awk '{print 0.0 "\t" 0.0 "\t" ($2*3)/$1}'`
    voici mes vraies variables que j'ai noté a1 a2...

    Si j'utilise les tableaux, il faudrait mettre mes variables Al... dans un tableau ? mais du coup comment faire?

    Merci beaucoup pour les réponses en tout cas

  5. #5
    Membre chevronné
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2013
    Messages : 563
    Par défaut
    Les `` sont dépréciés depuis longtemps... on utilise $().

    De même, tes echo sont inutiles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '{print 1/3 "\t" 2/3 "\t" $2/$1}' <<< "$c $c2"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    x=(1)
    x+=(2)
    echo "${x[@]}"
    => 1 2

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

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

    utilise un tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ tableau=( 4 7 8 6 )
    $ for i in "${tableau[@]}"; do echo "$i"; done
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/10/2018, 02h43
  2. [Débutant] Insérer des variables dans une loop for
    Par WhiteT1ger dans le forum MATLAB
    Réponses: 2
    Dernier message: 26/01/2015, 20h39
  3. Insérer des variables dans une Requête
    Par Dormeur74 dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/07/2011, 07h51
  4. Réponses: 4
    Dernier message: 28/01/2010, 16h38
  5. insérer des variables dans une table en php
    Par sajodia dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/01/2009, 17h36

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