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 28/05/2018, à 13:48

AGPArchitecture

Incompréhension avec array en bash

Bonjour à tous,

J'ai le script suivant :

#!/bin/bash

GetDirArray () #Dossier
{
	local old_IFS=${IFS} IFS=$'\n'
	local i=0
	declare -a arraydossiers
	#local dossiers=$(ls "$1")
	local dossiers=$(find "$1" -maxdepth 1 -mindepth 1 -type d)
	
	for dossier in ${dossiers}
	do
		if [ -d "$1/$db" ]; then
			echo "$1/$dossier"
			arraydossiers[$i]="$1/$db"
			((i++))
		fi
	done

	IFS=${old_IFS}
	return ${arraydossier}
}


ListDossiers=$(GetDirArray "$1")

echo "${#ListDossiers[@]}"

for i in "${ListDossiers[@]}"; do
	echo "$i"
done

exit 0

Le problème vient de la ligne

echo "${#ListDossiers[@]}"

qui me retourne toujours 1 alors que j'aurais vouolus connaitre le nombre d'éléments dans mon tableau.

D'ou vient le problème?

Hors ligne

#2 Le 28/05/2018, à 15:39

Watael

Re : Incompréhension avec array en bash

salut,

pas terrible comme code. sad

#!/bin/bash

getDirs()
{
   dossiers=( "$1"/*/ )
}
shopt -s dotglob
getDirs "$chemin"
echo ${#dossiers[*]}

c'est tout.
alors, on se demande si une fonction est vraiment indispensable...


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 29/05/2018, à 10:43

AGPArchitecture

Re : Incompréhension avec array en bash

Watael a écrit :

salut,

pas terrible comme code. sad
...
alors, on se demande si une fonction est vraiment indispensable...

Effectivement vu comme çà pas besoins de fonction... J'ai vraiment du mal en bash et je garde les reflex php et C# à vouloir refaire la roue.

Merci

Hors ligne