SOS Variable dynamique en bash

Résolu
Bonjour,

Je souhaite enregistrer le résultat d'une fonction dans une variable:

idents=(a b c); 
count=${#idents[*]}; 
for ((i=0; i < $count; i++)); do 
    ident=${idents[${i}]}; 
    ${ident}=${i}; 
done


Je souhaiterai que soit crées les variables $a, $b, $c avec les valeurs 0, 1, 2

Comment faire svp ?

3 réponses

  1. Modérateur
    Salut,

    #! /bin/bash
    #set -xv
    
    idents=(a b c);
    count=${#idents[*]};
    for ((i=0; i < $count; i++)); do
            ident=${idents[${i}]};
            eval "${ident}=${i}";
    done
    echo "${idents[0]} = $a"
    echo "${idents[1]} = $b"
    echo "${idents[2]} = $c"
    
    $ sh foo.sh
    a = 0
    b = 1
    c = 2
    1. Webmaster
      Bonjour,

      Fait simplement un eval de ton affectation :)
      #!/bin/sh
      idents=(a b c);
      count=${#idents[*]};
      for ((i=0; i < $count; i++)); do
      ident=${idents[${i}]};
      eval ${ident}=${i};
      done 
      
      echo $a
      echo $b
      echo $c


      A plus