Script bash process by user

Résolu
Bonjour, je voudrai faire un script en bash qui m'affiche pour chaque utilisateur la liste de leur processus actifs.
Pouvez-vous m'expliquer le problème que je rencontre avec sed et awk? Ainsi que résoudre le problème de l'affichage en utilisant "header" comme nom de champ

voici mon script :

#!/bin/bash
connected_people=`who | cut -f1 -d' ' | uniq`
header=`ps|head -1`

for name in $connected_people
do
#nom=`tr "." " " $name` <= quel est le problème ici?
echo "----------------------------------------------"
nom=`sed '$name s/*[.]*\./*[ ]*/'` <= erreur
echo $nom
proc=`ps U $name`
process=`awk -F" " {print $1 $2 $4 $5} < $proc` <= erreur (je souhaite n'afficher que les champ 1,2,4,5)
echo $header
echo $process
echo "----------------------------------------------"
done

Merci pour votre aide.
Configuration: Windows XP
Opera 9.23

6 réponses

  1. Modérateur
    Salut,

    #nom=`tr "." " " $name` <= quel est le problème ici?
    nom=$( echo ${name} | tr "." " ")

    nom=`sed '$name s/*[.]*\./*[ ]*/'` <= erreur
    nom=$(echo ${name} | sed 's/\./ /')

    process=`awk -F" " {print $1 $2 $4 $5} < $proc`
    process=$(awk -F" " '{ print $1,$2,$4,$5 }' < <(ps U ${name}))
    Essaye ça :
    #!/bin/bash
    connected_people=$(who | cut -f1 -d' ' | sort -u)
    
    
    for name in ${connected_people}
    do
    
    echo "----------------------------------------------"
    
    echo ${name/./ }
    echo
    echo $(awk -F" " '{ printf "%s\t%s\t%s\t%s\n", $1,$2,$4,$5 }' < <(ps U ${name}))
    
    echo "----------------------------------------------"
    done
    
    ;-))
    1. merci pour les explications. Cependant, j'ai encore quelques erreurs. Voici les messages sur le prompt :

      process_users: command substitution: line 10: syntax error near unexpected token `('
      process_users: command substitution: line 10: `awk -F" " '{ printf "%s\t%s\t%s\t%s\n", $1,$2,$4,$5 }' <<(ps U ${name})'
      1. Modérateur
        J'ai pas d'erreur chez moi, par contre j'ai oublié de quotter l'expression :
        echo "$(awk -F" " '{ printf "%s\t%s\t%s\t%s\n", $1,$2,$4,$5 }' < <(ps U ${name}))"
        T'as bien mis les 2 parenthèses fermantes en fin d'expression ?
        Essaye l'expression dans un shell interactif. Crées une variable :
        name=$USER
        et lances la commande :
        echo "$(awk -F" " '{ printf "%s\t%s\t%s\t%s\n", $1,$2,$4,$5 }' < <(ps U ${name}))"
        et dis-moi si ça marche...
        1. J'ai du m'absenter, désolé. Oui en effet, dans le prompt ça fonctionne, mais dans le script -certainement un problème dans la boucle- ça ne fonctionne pas et ça me remet encore la même erreur :

          process_users: command substitution: line 10: syntax error near unexpected token `('
          process_users: command substitution: line 10: `awk -F" " '{ printf "%s\t%s\t%s\t%s\n", $1,$2,$4,$5 }' <<(ps U ${name})'
          1. Modérateur
            Affiches ton script en entier ici s'il te plaît.
            Sinon, lances-le aussi en mode débogage, rajoute "set -xv" aprés la ligne shebang :
            #! /bin/bash
            set -xv
            tu auras déjà quelques indications sûrement.
            1. Modérateur
              Salut,

              pourquoi pas

              au lieu de
              lami20j@debian:~/trash$ ps U lami20j
                PID TTY      STAT   TIME COMMAND
               2681 ?        Ss     0:01 x-session-manager
               2724 ?        Ss     0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager
               2727 ?        S      0:00 /usr/bin/dbus-launch --exit-with-session x-session-manager
               2728 ?        Ss     0:00 /usr/bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
               2756 ?        S      0:00 /usr/lib/libgconf2-4/gconfd-2 5
               2759 ?        S      0:00 /usr/bin/gnome-keyring-daemon
               2761 ?        Ss     0:00 /usr/lib/bonobo-activation/bonobo-activation-server --ac-activate --ior-output-fd=18
               2763 ?        Sl     0:09 /usr/lib/control-center/gnome-settings-daemon --oaf-activate-iid=OAFIID:GNOME_SettingsDaemon --oaf-ior-fd=26
               2773 ?        Ss     0:49 /usr/bin/metacity --sm-client-id=default0
               2781 ?        Ssl    0:08 gnome-panel --sm-client-id default1
               2783 ?        Ssl    0:10 nautilus --no-default-window --sm-client-id default2
               2787 ?        Ss     0:01 vino-session --sm-client-id default5
               2788 ?        Ss     0:00 gnome-volume-manager --sm-client-id default4
               2790 ?        Ss     0:00 bluetooth-applet
               2792 ?        Ss     0:46 /usr/bin/konsole
               2796 ?        Sl     0:01 /usr/lib/gnome-vfs-2.0/gnome-vfs-daemon --oaf-activate-iid=OAFIID:GNOME_VFS_Daemon_Factory --oaf-ior-fd=32
               2800 ?        Ss     0:05 update-notifier
               2812 ?        S      0:05 /usr/lib/gnome-panel/clock-applet --oaf-activate-iid=OAFIID:GNOME_ClockApplet_Factory --oaf-ior-fd=34
               2817 ?        S      0:00 /usr/lib/nautilus-cd-burner/mapping-daemon
               2825 ?        Ss     0:00 kdeinit Running...
               2831 ?        S      0:00 dcopserver [kdeinit] --nosid --suicide
               2836 ?        S      0:00 klauncher [kdeinit]
               2838 ?        S      0:05 kded [kdeinit]
               2845 ?        S      0:00 /usr/lib/gnome-panel/notification-area-applet --oaf-activate-iid=OAFIID:GNOME_NotificationAreaApplet_Factory --oaf-ior-fd=38
               2847 ?        S      0:06 /usr/lib/gnome-panel/wnck-applet --oaf-activate-iid=OAFIID:GNOME_Wncklet_Factory --oaf-ior-fd=39
               2849 ?        S      0:04 /usr/lib/gnome-applets/mixer_applet2 --oaf-activate-iid=OAFIID:GNOME_MixerApplet_Factory --oaf-ior-fd=40
               2852 pts/0    Ss     0:00 /bin/bash
               2872 ?        Ss     0:14 gnome-screensaver
               2882 pts/0    Sl    52:46 /usr/lib/iceweasel/firefox-bin -a firefox
               3049 ?        S      0:05 /usr/lib/notification-daemon/notification-daemon
               3216 ?        S      0:11 knotify [kdeinit]
               3219 ?        S      0:02 /usr/bin/artsd -F 10 -S 4096 -s 60 -m artsmessage -l 3 -f
               4683 pts/0    SLl   60:18 kaffeine
               4686 ?        S      0:00 kio_file [kdeinit] file /tmp/ksocket-lami20j/klauncherDFmrjb.slave-socket /tmp/ksocket-lami20j/kaffeineKfxC2b.slave-socket
               4896 pts/1    Ss     0:00 /bin/bash
               5201 pts/0    S+     0:00 vi ccm.pl
               5601 pts/1    S      0:59 scite
               5946 pts/1    R+     0:00 ps U lami20j
              
              tu n'utilise pas
              lami20j@debian:~/trash$ ps -o pid,tty,time,cmd -U lami20j
                PID TT           TIME CMD
               2681 ?        00:00:01 x-session-manager
               2724 ?        00:00:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager
               2727 ?        00:00:00 /usr/bin/dbus-launch --exit-with-session x-session-manager
               2728 ?        00:00:00 /usr/bin/dbus-daemon --fork --print-pid 4 --print-address 6 --session
               2756 ?        00:00:00 /usr/lib/libgconf2-4/gconfd-2 5
               2759 ?        00:00:00 /usr/bin/gnome-keyring-daemon
               2761 ?        00:00:00 /usr/lib/bonobo-activation/bonobo-activation-server --ac-activate --ior-output-fd=18
               2763 ?        00:00:09 /usr/lib/control-center/gnome-settings-daemon --oaf-activate-iid=OAFIID:GNOME_SettingsDaemon --oaf-ior-fd=26
               2773 ?        00:00:49 /usr/bin/metacity --sm-client-id=default0
               2781 ?        00:00:08 gnome-panel --sm-client-id default1
               2783 ?        00:00:10 nautilus --no-default-window --sm-client-id default2
               2787 ?        00:00:01 vino-session --sm-client-id default5
               2788 ?        00:00:00 gnome-volume-manager --sm-client-id default4
               2790 ?        00:00:00 bluetooth-applet
               2792 ?        00:00:46 /usr/bin/konsole
               2796 ?        00:00:01 /usr/lib/gnome-vfs-2.0/gnome-vfs-daemon --oaf-activate-iid=OAFIID:GNOME_VFS_Daemon_Factory --oaf-ior-fd=32
               2800 ?        00:00:05 update-notifier
               2812 ?        00:00:05 /usr/lib/gnome-panel/clock-applet --oaf-activate-iid=OAFIID:GNOME_ClockApplet_Factory --oaf-ior-fd=34
               2817 ?        00:00:00 /usr/lib/nautilus-cd-burner/mapping-daemon
               2825 ?        00:00:00 kdeinit Running...
               2831 ?        00:00:00 dcopserver [kdeinit] --nosid --suicide
               2836 ?        00:00:00 klauncher [kdeinit]
               2838 ?        00:00:05 kded [kdeinit]
               2845 ?        00:00:00 /usr/lib/gnome-panel/notification-area-applet --oaf-activate-iid=OAFIID:GNOME_NotificationAreaApplet_Factory --oaf-ior-fd=38
               2847 ?        00:00:06 /usr/lib/gnome-panel/wnck-applet --oaf-activate-iid=OAFIID:GNOME_Wncklet_Factory --oaf-ior-fd=39
               2849 ?        00:00:04 /usr/lib/gnome-applets/mixer_applet2 --oaf-activate-iid=OAFIID:GNOME_MixerApplet_Factory --oaf-ior-fd=40
               2852 pts/0    00:00:00 /bin/bash
               2872 ?        00:00:14 gnome-screensaver
               2882 pts/0    00:52:50 /usr/lib/iceweasel/firefox-bin -a firefox
               3049 ?        00:00:05 /usr/lib/notification-daemon/notification-daemon
               3216 ?        00:00:11 knotify [kdeinit]
               3219 ?        00:00:02 /usr/bin/artsd -F 10 -S 4096 -s 60 -m artsmessage -l 3 -f
               4683 pts/0    01:00:23 kaffeine
               4686 ?        00:00:00 kio_file [kdeinit] file /tmp/ksocket-lami20j/klauncherDFmrjb.slave-socket /tmp/ksocket-lami20j/kaffeineKfxC2b.slave-socket
               4896 pts/1    00:00:00 /bin/bash
               5201 pts/0    00:00:00 vi ccm.pl
               5601 pts/1    00:00:59 scite
               5948 pts/1    00:00:00 ps -o pid,tty,time,cmd -U lami20j
              
              où
              lami20j@debian:~/trash$ ps -o pid,tty,time,comm -U lami20j
                PID TT           TIME COMMAND
               2681 ?        00:00:01 x-session-manag
               2724 ?        00:00:00 ssh-agent
               2727 ?        00:00:00 dbus-launch
               2728 ?        00:00:00 dbus-daemon
               2756 ?        00:00:00 gconfd-2
               2759 ?        00:00:00 gnome-keyring-d
               2761 ?        00:00:00 bonobo-activati
               2763 ?        00:00:09 gnome-settings-
               2773 ?        00:00:49 metacity
               2781 ?        00:00:08 gnome-panel
               2783 ?        00:00:10 nautilus
               2787 ?        00:00:01 vino-session
               2788 ?        00:00:00 gnome-volume-ma
               2790 ?        00:00:00 bluetooth-apple
               2792 ?        00:00:47 konsole
               2796 ?        00:00:01 gnome-vfs-daemo
               2800 ?        00:00:05 update-notifier
               2812 ?        00:00:05 clock-applet
               2817 ?        00:00:00 mapping-daemon
               2825 ?        00:00:00 kdeinit
               2831 ?        00:00:00 dcopserver
               2836 ?        00:00:00 klauncher
               2838 ?        00:00:05 kded
               2845 ?        00:00:00 notification-ar
               2847 ?        00:00:06 wnck-applet
               2849 ?        00:00:04 mixer_applet2
               2852 pts/0    00:00:00 bash
               2872 ?        00:00:14 gnome-screensav
               2882 pts/0    00:52:54 firefox-bin
               3049 ?        00:00:05 notification-da
               3216 ?        00:00:11 knotify
               3219 ?        00:00:02 artsd
               4683 pts/0    01:00:29 kaffeine
               4686 ?        00:00:00 kio_file
               4896 pts/1    00:00:00 bash
               5201 pts/0    00:00:00 vi
               5601 pts/1    00:00:59 scite
               5949 pts/1    00:00:00 ps