Bonjour,
j'ai un exercice a faire et j'ai besoin d'aide ; ils me demande d'écrire un script en 4 shells qui parcourt l'ensemble des processus de l'utilisateur passé en paramètre et qui affiche leur état respectif .
Voici ce que j'ai trouvé pour le moment mais apparemment quand j'exécute le script il passe pas en else genre il passe que par cette partie du code if ( test $# -eq 0 )
alors
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/bin/bash
 
if ( test $# -eq 0 )
then
        echo 'Erreur sy'
else
        ps hU $1 -o state,comm > tempfile
        number=$(wc -l < tempfile)
        i=1
        while [ $i -le $number ]
        do
                commande=$( tail -$i tempfile | head -1 | cut -d" " -f2 )
                etat=$(tail -$i tempfile | head -1 | cut -d" " -f1 )
                let i=i+1
                echo -n " $commande :"
                case $etat
                        in
                        D) echo "endormi => ininterptuble" ;;
                        S) echo "endormi" ;;
                        R) echo "en cours" ;;
                        T) echo "stop" ;;
                        Z) echo "zombie" ;;
                        *) echo "inconnu" ;;
                esac 
        done
        rm tempfile
fi