IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes POSIX Discussion :

Script qui parcourt l'ensemble des processus de l'utilisateur passé en paramètre et qui affiche leur état


Sujet :

Shell et commandes POSIX

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Script qui parcourt l'ensemble des processus de l'utilisateur passé en paramètre et qui affiche leur état
    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

  2. #2
    Expert éminent sénior Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Points : 12 262
    Points
    12 262
    Par défaut
    lis ce putain de code ; il est pas super bien écrit et largement optimisable mais il fonctionne bien ; au lieu de le copier coller sans réfléchir ... un devoir c'est la pour t'apprendre quelque chose pas pour que tu googlises #*$&é*$ê%

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    francois@h2g2:~/tmp$ ./f francois
     ps :en cours            
     f :endormi          
     bash :endormi           
     gvfsd-dnssd :endormi  
     gvfsd-smb-brows :endormi
     gvfsd-network :endormi
     Web :endormi
     firefox-esr :endormi
     bash :endormi   
     top :endormi       
     bash :endormi  
     ircII :endormi
     bash :endormi
     tmux: :endormi
     tmux: :endormi
     bash :endormi
     xfce4-terminal :endormi
     gvfsd-trash :endormi
     gvfsd-metadata :endormi
     gvfs-afc-volume :endormi
     gvfs-mtp-volume :endormi
     gvfs-gphoto2-vo :endormi
     gvfs-goa-volume :endormi
     gvfs-udisks2-vo :endormi
     panel-2-actions :endormi
     panel-6-systray :endormi
     dconf-service :endormi
     light-locker :endormi
     pulseaudio :endormi
     gvfsd :endormi
     polkit-gnome-au :endormi
     nm-applet :endormi
     applet.py :endormi
     xfce4-power-man :endormi
     xfsettingsd :endormi
     xfdesktop :endormi
     Thunar :endormi
     xfce4-panel :endormi
     xfwm4 :endormi
     gpg-agent :endormi
     xfconfd :endormi
     at-spi2-registr :endormi
     dbus-daemon :endormi
     at-spi-bus-laun :endormi
     xfce4-session :endormi
     ssh-agent :endormi
     dbus-daemon :endormi
     sh :endormi
     (sd-pam) :endormi
     systemd :endormi
    francois@h2g2:~/tmp$
    francois@h2g2:~/tmp$ cd ..
    francois@h2g2:~$ rm -rf tmp

Discussions similaires

  1. Macro qui compile l'ensemble des lignes rouges des onglets précédents
    Par Manu8586 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 14/02/2015, 00h27
  2. [XL-2010] Macro qui compile l'ensemble des lignes rouges des onglets précédents
    Par mama35_8 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 28/01/2015, 20h32
  3. Visualiser ensemble des droits sur un utilisateur
    Par Aldareis dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 31/05/2008, 19h46
  4. Réponses: 2
    Dernier message: 21/04/2006, 13h09
  5. faire un petit menu qui lance des processus
    Par tomsoyer dans le forum Linux
    Réponses: 4
    Dernier message: 30/11/2004, 19h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo