#1 Le 28/05/2018, à 12: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, à 14:39
- Watael
Re : Incompréhension avec array en bash
salut,
pas terrible comme code.
#!/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, à 09:43
- AGPArchitecture
Re : Incompréhension avec array en bash
salut,
pas terrible comme code.
...
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