Bash : afficher le paramètre $i +1

slipuro -  
 slipuro -
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

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

    Merci Rocailleux!
    0