Comment stopper une des commandes d'un script

Résolu
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
Configuration: Windows 2000
Firefox 2.0.0.2

5 réponses

  1. Modérateur
    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 $!
    ;-))
    1. merci pour ta réponse,

      comment fais tu pour faire en sorte qu'il ne prenne le kill qu'au bout des x secondes?
      1. Modérateur
        Tu fais un :
        sleep n
        ou "n" est un entier (man sleep) tout simplement ;-))
        1. Vraiment merci beaucoup,

          ton aide m'a été très précieuse .
          1. Modérateur
            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
            ;-))