diff --git a/systeme/tp/tp8/exoFonctions.bash b/systeme/tp/tp8/exoFonctions.bash new file mode 100644 index 0000000..1399dea --- /dev/null +++ b/systeme/tp/tp8/exoFonctions.bash @@ -0,0 +1,66 @@ +#!/bin/bash + +doc() { + cat << EOF >&2 +Affiche le nombre de processus de chaque utilisateur possédant au moins +1 processus dans le système. + +usage : \`basename $0\` \[ -h \] + + -h : affiche cette aide. +EOF +} + +usage() { + doc + exit 1 +} + + +# 1. Compte le nombre de processus de l'utilisateur dont le login est passé en argument. +# 2. $1 : le login. +# 3. stdout : le nombre de processus de l'utilisateur. +processOneUser() { + # Les remarques indiquées dans la fonction processAllUsers + # s'appliquent également à cette fonction + + ### A COMPLETER (1 ligne) ### +} + +# 1. Affiche le tableau (non trié) du nombre de processus par utilisateur. +# 2. Pas d'argument. +# 3. stdout : le tableau. +processAllUsers() { + + # traitement + # ---------- + # début + # L<-liste des utilisateurs possédant un processus en mémoire + # pour i élément de L faire + # n=nombre de processus de l'utilisateur i dans le système + # afficher "i n" + # fin pour + # fin + + # Remarques : + # 1. pour obtenir la liste des propriétaire des processus, utilisez la + # commande : ps h -eo user + # 2. Pour éliminer les doublons d'une liste filtrez la avec la commande : + # sort -u. + + ### A COMPLETER (5 lignes) ### +} + +# Début du traitement des arguments. +while [ $# -ne 0 ]; do + case $1 in + -h|--help) + doc + exit 0 + ;; + *) usage + ;; + esac + shift +done +# Fin du traitement des arguments. diff --git a/systeme/tp/tp8/waitfor.bash b/systeme/tp/tp8/waitfor.bash new file mode 100755 index 0000000..5f30a66 --- /dev/null +++ b/systeme/tp/tp8/waitfor.bash @@ -0,0 +1,22 @@ +#!/bin/bash + +while [ $# -ne 0 ]; do + case "$1" in + '-user') + l=$2 + shift 2 + if [ "$2" = 0 ]; then + echo "manque le nom d'utilisateur" >&2 + exit 1 + fi + echo $(ps -U) + echo $(find -name "$l") + if [ $? -ne 0 ] ; then + echo "aucun utilisateur avec ce nom n'a été trouvé !!" + fi + ;; + *) + echo "Argument $1 inconnu" >&2 && exit 2 + ;; + esac +done