reference indirecte à un tableau, en bash
Le
NicolasAlex.Michel.remove
Bonjour
En bash on peut créer un tableau, genre
$ mot=( bonjour tcho )
$ echo ${mot[0]}
bonjour
$ echo ${mot[1]}
tcho
On peut aussi faire un adressage indirecte d'une variable :
prem=mot
mot=bonjour
echo ${prem}
mot
echo ${!prem}
bonjour
Est-il possible de faire un adressage indirecte à un tableau, en bash ?
J'ai pas trouvé dans l'abs, mais j'ai peut-être mal cherché
Ceci ne fonctionne pas :
prem=mot
mot[1]=tcho
echo ${mot[1]}
tcho
echo ${!prem[1]}
Merci !
--
Nicolas Michel
En bash on peut créer un tableau, genre
$ mot=( bonjour tcho )
$ echo ${mot[0]}
bonjour
$ echo ${mot[1]}
tcho
On peut aussi faire un adressage indirecte d'une variable :
prem=mot
mot=bonjour
echo ${prem}
mot
echo ${!prem}
bonjour
Est-il possible de faire un adressage indirecte à un tableau, en bash ?
J'ai pas trouvé dans l'abs, mais j'ai peut-être mal cherché
Ceci ne fonctionne pas :
prem=mot
mot[1]=tcho
echo ${mot[1]}
tcho
echo ${!prem[1]}
Merci !
--
Nicolas Michel

Poser une question


Hello
Je me réponds à moi-même, c'est
$> eval arraycontent=${$1[$increment]}
Pour illustrer la chose, voici une petite fonction qui affiche le
contenu d'un tableau :
#!/bin/bash
showarray () {
local arraylenght=""
local arraycontent=""
local increment=0
eval arraylenght=${#$1[@]}
while [ "$increment" -lt "$arraylenght" ]
do
eval arraycontent=${$1[$increment]}
echo "cellule No $increment = $arraycontent"
(( increment++ ))
done
}
liste=( aaa bb "c c" d )
showarray liste
--
Nicolas Michel