[tab name=’Exercice Unix’]
L’objectif de cet exercice est de créer une commande ikill ne prenant pas d’argument mais demandant un nom de programme à l’utilisateur et tuant ce programme. On utilisera les commandes tr -s ‘ ‘, cut, kill, read, ps -fA, grep, grep -v et echo.
La commande affichera :
Quel processus voulez-vous supprimer ?
Vous rentrerez un nom de processus, par exemple emacs et tous les processus emacs seront supprimés.
- Lire les pages de man des commandes utilisées.
- Quels sont les greps qu’il faut effectuer sur la sortie de ps -fA pour ne conserver que le processus que l’on souhaite tuer (essayer avec ps -fA | grep bash). Utilisez la variable $USER.
- Stockez la liste de PID des processus à supprimer dans la variable $PID et affichez la.
- Écrire la commande. N’oubliez pas de vérifier que la variable $PID n’est pas vide avant d’effectuer le kill.
[/tab][tab name=’Correction’]
#!/bin/bash echo -n "Quel processus voulez-vous supprimer ? " read NAME PID=`ps -Af | grep "$USER" | grep "$NAME" | grep -v grep | tr -s ' ' | cut -f 3 -d ' '` if [ -z $PID ] then echo Pas de processus $NAME... exit -1 fi kill $PID
[/tab][end_tabset skin= »ginger » ]