Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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. sad
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 sad

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 sad

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