Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

reference indirecte à un tableau, en bash

1 réponse
Avatar
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

1 réponse

Avatar
NicolasAlex.Michel.remove
Nicolas Michel wrote:

Est-il possible de faire un adressage indirecte à un tableau, en bash ?




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