SOS Variable dynamique en bash
Résolu
yinkoh
-
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
jipicy Messages postés 40842 Date d'inscription Statut Modérateur Dernière intervention -
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
-
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 -
-
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