Boucle read

Fermé
michael_scott Messages postés 58 Date d'inscription mercredi 2 avril 2014 Statut Membre Dernière intervention 8 novembre 2018 - Modifié par jipicy le 10/04/2015 à 11:59
 Utilisateur anonyme - 15 avril 2015 à 16:16
Bonjour,
j'aimerai trouver un moyen de renseigner plusieurs ID de job dans le read. et terminer le programme lorsque que je ne rentre plus rien ("")...

j'ai ça:
 while test $job !=" "
        do 
        read -p "renseigner l'ID du job a suivre:  " job
       echo $job
done

et après de pouvoir utiliser les jobs individuellement, à la maniere:
for i in $liste_job
etc...

Avez vous des idées ?
Merci

1 réponse

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
10 avril 2015 à 12:10
Salut,

Le script revu et corrigé ;-)
#! /bin/bash

while test -z "${job}" 
      do 
      read -p "renseigner l'ID du job a suivre:  " job
      echo "${job}"
done

j=1
for i in  ${job}
do echo "ID ${j} : ${i}"
((j++))
done


$ ./foo.sh 
renseigner l'ID du job a suivre:

renseigner l'ID du job a suivre: 1 22 333 4444
1 22 333 4444
ID 1 : 1
ID 2 : 22
ID 3 : 333
ID 4 : 4444

0
michael_scott Messages postés 58 Date d'inscription mercredi 2 avril 2014 Statut Membre Dernière intervention 8 novembre 2018
Modifié par michael_scott le 10/04/2015 à 15:15
comment faire si je souhaite voir l etat de mes jobs, puis voir le suivant.. pour revenir au premier:
for i in ${job}

do
echo "job en cours $i"
state=`bjobs $i |grep -v "STAT"| awk '{print $3}'`

while test $state = "RUN"

do

echo "en cours etat : $state "

sleep 6

done

if test $state != "RUN"

then
echo "job termine"
exit
fi
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
pour votre exemple :
job en cours 1 : RUN
job en cours 22 : RUN
job en cours 333 : RUN
etc

En fait un next i serait parfait (?)
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407 > michael_scott Messages postés 58 Date d'inscription mercredi 2 avril 2014 Statut Membre Dernière intervention 8 novembre 2018
10 avril 2015 à 15:24
En fait un next i serait parfait (?)
Voir du côté de la commande
shift
du shell.
0
Utilisateur anonyme
12 avril 2015 à 16:23
shift
manipule les paramètres positionnels.

si je récapitule :
1- entrer les processus à suivre
2- afficher l'état de processus à suivre
c'est ça ?
0
michael_scott Messages postés 58 Date d'inscription mercredi 2 avril 2014 Statut Membre Dernière intervention 8 novembre 2018
13 avril 2015 à 15:02
j'ai essayé, mais le shift ne marche pas dans la boucle while ( j ai essayé avec du if et effectivement ça fonctionne, or il me faut du while..)
0
michael_scott Messages postés 58 Date d'inscription mercredi 2 avril 2014 Statut Membre Dernière intervention 8 novembre 2018 > Utilisateur anonyme
Modifié par michael_scott le 13/04/2015 à 15:04
oui qqchquicommenceparQ
0