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
    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. Vraiment merci beaucoup,

      ton aide m'a été très précieuse .
      1. Modérateur
        Tu fais un :
        sleep n
        ou "n" est un entier (man sleep) tout simplement ;-))
        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
            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 $!
            ;-))