[BASH] Récupération des arguments en boucle

Résolu/Fermé
Pouic182 Messages postés 15 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 12 février 2010 - 19 août 2009 à 11:31
Pouic182 Messages postés 15 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 12 février 2010 - 19 août 2009 à 17:00
Bonjour tout le monde,

Je dois développer un script interpréter en bash mais je bloque sur un détail...
Je dois en fait récupérer la valeur des arguments passés à mon script, le problème est que le nombre d'arguments est variable =S

Un exemple sera plus clair (enfin je l'espère ^^) :
--> appel de mon script : ./script nom1 prénom1 nom2 prénom2 nom3 prénom3 ...
--> récupération des arguments dans des variables :
NOM1=$1
PRENOM1=$2
NOM2=$3
PRENOM2=$4
NOM3=$5
PRENOM3=$6 ....

Voilà, en espérant avoir été assez clair.

Merci d'avance pour toutes vos pistes.

2 réponses

jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
19 août 2009 à 12:20
Salut,

J'ai du mal à voir où est ton soucis ???

Sers-toi du paramètre $# pour connaitre le nombre d'arguments, non ?
1
Pouic182 Messages postés 15 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 12 février 2010 1
19 août 2009 à 17:00
Salut jipicy,

En fait, j'ai trouvé la solution à mon problème en passant par un tableau.

j=1
for i in $*
do
 tab[$j]=$i
 j=$((j+1))
done


Et en faisant une autre boucle derrière, je récupère bien les bonnes informations dans les bonnes variables.

for(( i=6,j=7,k=1; i < NB_ARG+1,j < NB_ARG+1,k < NB_SAUV+1 ; i=$(($i + 2)) ,j=$(($j + 2)) ,k++ ))
do
echo "Voici les statistiques detaillees de la machine ${tab[$i]} pour le repertoire ${tab[$j]} :" >> /$RACINE/$CLIENT/logs/mail.txt
cat /$RACINE/$CLIENT/logs/resultat_${tab[$i]}_${tab[$j]}.txt >> /$RACINE/$CLIENT/logs/mail.txt
echo "" >> /$RACINE/$CLIENT/logs/mail.txt
done


Merci bien de ta réponse ^^
1