Comment stopper une des commandes d'un script

Résolu/Fermé
Clement44 Messages postés 6 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 6 juin 2007 - 1 mars 2007 à 10:33
jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 - 1 mars 2007 à 15:27
Bonjour à tous,

actuellement je cherche à développer un script utilisant la fonction "free" qui permet d'obtenir des informations sur la RAM.
Or, à ma connaissance, cette fonction possède une option pour itérer les observations toute les x secondes, mais rien pour l'arrêter?
Je ne peux pas faire Ctrj+C car sinon la fin du script ne s'effectue pas.

Est ce que quelqu'un aurait une idée?

Merci d'avance
A voir également:

5 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
1 mars 2007 à 15:27
De rien ;-))

Tiens une petite variante qui peut être plus sympa dû au fait qu'elle affiche le résultat de la commande "free" (au lieu de la cacher du fait de sa mise en arrière-plan) pendant x secondes (man watch pour plus de détails) :
	i=0
	while [ "$i" -lt 12 ]
	do free > fich.tmp
	sleep 1
	i=$(expr $i + 1)
	if [ "$i" -eq 11 ]
	then
	pkill watch
	fi
	done&
	watch -n 1 -d -t 'cat fich.tmp' && rm -f fich.tmp
;-))
1
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
1 mars 2007 à 11:01
Salut,

Lance ta commande en arrière-plan :
free -s 3&
ton script se poursuivra alors. Pour stopper le processus en arrière-plan depuis ton script :
kill -9 $!
;-))
0
Clement44 Messages postés 6 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 6 juin 2007
1 mars 2007 à 11:38
merci pour ta réponse,

comment fais tu pour faire en sorte qu'il ne prenne le kill qu'au bout des x secondes?
0
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
1 mars 2007 à 11:47
Tu fais un :
sleep n
ou "n" est un entier (man sleep) tout simplement ;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Clement44 Messages postés 6 Date d'inscription mercredi 28 février 2007 Statut Membre Dernière intervention 6 juin 2007
1 mars 2007 à 14:59
Vraiment merci beaucoup,

ton aide m'a été très précieuse .
0