SOS Variable dynamique en bash
Résolu
Bonjour,
Je souhaite enregistrer le résultat d'une fonction dans une variable:
Je souhaiterai que soit crées les variables $a, $b, $c avec les valeurs 0, 1, 2
Comment faire svp ?
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
-
WebmasterBonjour,
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 -
Grrrrrrr !
Je pensais l'avoir testé pourtant.
Merci. -
ModérateurSalut,
#! /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