Bonjour,
Pour parler clairement, je cherche quelqu’un qui va accepter de débugger mon programme…
Petit résumé de ce qu’il est sensé faire :
Y a un tableau créé avec des suites de 5 chiffres. Le script du programme prend en argument une valeur, c’est un chiffre; Ce chiffre doit être dans le tableau.
Le but du programme c’est de déterminer l’emplacement exact du chiffre dans le tableau.
Alors c’est balo parce que le programme fonctionne jusqu’à la troisième suite de 5 chiffres. à partir de la 4ième, il ne trouve plus.
Admettons que vous enregistriez le script sous le nom de cherche_chiffre.sh
Par exemple si vous lancez le script ainsi, $ ./cherche_chiffre.sh 17, le programme va répondre :
Numéro trouvé à l'index 1 . Entrée trouvée à la position : 2
Mais si vous saisissez $ ./cherche_chiffre.sh 24 alors là, y a aucun retour
#!/bin/bash
### Création du tableau
declare -a GrosTableau=("5 17 44 46 49 4" "11 14 28 41 43 8" "7 16 33 42 47 7" "17 24 26 40 43 9" "10 15 16 17 37 9" "5 18 26 38 41 10" "5 30 42 45 48 9" "9 10 14 16 29 1" "31 33 38 42 43 3" "9 13 22 28 35 5" "2 19 25 30 43 9" "7 8 12 22 33 5" "4 8 12 25 45 2" "15 21 33 35 48 1" "7 25 28 35 48 1" "9 20 23 24 28 4" "19 26 32 39 42 6" "7 11 18 21 42 3" "26 31 42 47 48 8" "6 17 19 30 49 2")
## affichage du tableau
echo ${GrosTableau[@]}
# cette boucle est sensée chercher une entrée définie par l'argument passée au lancement du script "$1"
k=0
while [[ "$k" < ${#GrosTableau[@]} ]];
do
declare -a tab=$(echo "tableau$k")
#echo $tab
tab=(${GrosTableau[$k]})
#echo "${tab[@]}"
for valeur in "${!tab[@]}"; # travail avec les indexs ($valeur prend les datas des indexs et non celles des entrees du tableau)
do
if [[ "$1" == "${tab[$valeur]}" ]]; then
posTab=$(($k+1))
posIndex=$(($valeur + 1))
echo "Numéro trouvé à l'index $posTab . Entrée trouvée à la position : $posIndex "
exit 0 # permet de sortir du programme pour éviter de rechercher les suivants
else
echo '' #"pas trouvé"
fi
done
((k++))
done
posTab=$(($k+1)) et posIndex=$(($valeur + 1)) , c’est juste pour rendre compréhensible la sortie du résultat, car la première entrée d’un tableau c’est 0…
Voilà, par avance, merci à celui, celle ou ceux qui auront la patience de découvrir le hic !