#1 Le 01/05/2020, à 15:43
- alex2423
Syntaxe pour parcourir un tableau avec une variable ?
Hello tout le monde,
Je souhaiterai parcourir un tableau Bash avec comme indice une variable.
declare -a tab_url
list_url="url1 url2 url3"
numero_ligne=1
for url in $list_url
do
echo ""
echo ""
tab_url[${numero_ligne}]="$url"
numero_ligne=$(($numero_ligne+1))
echo "url = $url"
echo "numero_ligne = ${numero_ligne}"
echo "tab_url = $tab_url[${numero_ligne}]"
done
Et malheureusement, j'obtiens :
url = url1
numero_ligne = 2
tab_usr = [2]
url = url2
numero_ligne = 3
tab_usr = [3]
Comme vous pouvez voire, l'indice est bien interpertré mais son interprétation n'est pas utilisé par le tableau tab_url.
Malheureusement dans les doc que j'ai trouvé sur le net, comme cella-la, http://www.ixany.org/docs/Shell_Les_tab … l#creation
il parle de tous les types d'utilisation d'un tableau sauf pour lire un tableau avec un indice comme variable
Hors ligne
#2 Le 01/05/2020, à 15:59
- kamaris
Re : Syntaxe pour parcourir un tableau avec une variable ?
La syntaxe pour accéder aux données d'un tableau, c'est ${tableau[$n]}.
Par ailleurs, il y a apparemment une confusion entre tab_url et tab_usr dans ton code.
--
PS : numero_ligne=$(($numero_ligne+1)) peut avantageusement être remplacé par ((numero_ligne++)).
Dernière modification par kamaris (Le 01/05/2020, à 16:03)
Hors ligne
#3 Le 01/05/2020, à 16:14
- pingouinux
Re : Syntaxe pour parcourir un tableau avec une variable ?
Bonjour,
De plus, il ne faut pas incrémenter le numero_ligne avant d'imprimer l'élément du tableau correspondant.
Hors ligne
#4 Le 01/05/2020, à 16:35
- alex2423
Re : Syntaxe pour parcourir un tableau avec une variable ?
Merci bien à vous 2, j'y étais presque. J'ai fait quelques erreurs idiotes
for url in $list_url
do
echo ""
echo ""
tab_url[${numero_ligne}]="$url"
echo "url = $url"
echo "numero_ligne = ${numero_ligne}"
echo "tab_usr = ${tab_url[$numero_ligne]}"
numero_ligne=$((numero_ligne++))
done
Et cela me donne :
url = url1
numero_ligne = 1
tab_usr = url1
url = url2
numero_ligne = 1
tab_usr = url2
Hors ligne
#5 Le 01/05/2020, à 16:45
- kamaris
Re : Syntaxe pour parcourir un tableau avec une variable ?
L'expression ((numero_ligne++)) se suffit à elle-même.
Elle remplace entièrement l'expression numero_ligne=$(($numero_ligne+1)).
Car avec numero_ligne=$((numero_ligne++)), numero_ligne n'est jamais incrémenté (la post-incrémentation a lieu après l'affectation).
Hors ligne
#6 Le 01/05/2020, à 18:22
- Watael
Re : Syntaxe pour parcourir un tableau avec une variable ?
salut,
d'où vient list_url ?
pourquoi n'est-ce pas tout de suite un tableau ?
Connected \o/
Welcome to sHell. · eval is evil.
Hors ligne