Bash : afficher le paramètre $i +1

Fermé
slipuro - 4 oct. 2016 à 15:11
 slipuro - 4 oct. 2016 à 15:47
Bonjour,

Je fais un script qui recevra un nombre paire de paramètres, il s'agira d'un plugin nagios qui vérifie que chaque processus reçus en paramètre a le nombre d'instance
(qui est le nombre suivant dans les paramètres) qui tourne.

exemple :
./check_proc.sh procA 3 procB 5 procC 1


Là il checkera que procA à bien 3 processus à son nom, procB devra avoir 5 processus à son nom, et procC un seul.

Dans le script il y aura une boucle, avec un indice incrémenté de 2 à chaque tour.
Ainsi chaque tour de boucle traitera deux pramètres : le nom de processus, qui correspond au paramètre N° <indice> et le nombre d'instance attendus pour celui-ci, qui correspond au paramètre <indice>+1.

l'algo:
<indice> <-- 1
tant que <indice> est plus petit que le nombre de paramètres
alors
verifier que le paramètre numéro <indice> tourne bien (<indice>+1) fois
incrémenter <indice> de +2

en bash, $1 correspond au premier paramètre, donc par rapport à l'exemple, à la valeur "procA"

Mon problème c'est que je ne connais pas la synthaxe permettant de recupérer la valeur du paramètre numéro <indice> et encore moins <indice+1>
( au premier tour ça sera $1 et $2, soit les 2 premiers paramètres, au second, les paramètres 3 et 4 ,ainsi de suite, jusqu'à ce qu'il n'y ait plus de paramètre à utiliser.)

Est-ce que quelqu'un aurait les connaissances pour m'éclairer sur cette syntaxe ?

D'avance merci

2 réponses

while (test "$#" -gt "0")
do
process="$1"
shift
nb="$1"
#tu testes que le process a bien nb instances
shift
done
1
Ah oui ça marche bien et c'est bien plus simple de cette façon.

Merci Rocailleux!
0