![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| Les processus et les utilisateurs | barbus | De programmation et de script Shell | 22 | 10-03-2007 08:09 PM |
| les utilisateurs et les processus | iago | UNIX pour les nuls Questions et réponses | 3 | 09-10-2007 03:51 PM |
| J'ai besoin d'un scipt pour les utilisateurs d'email avec les processus inactif? | sheppy28 | De programmation et de script Shell | 0 | 02-02-2007 04:08 PM |
| Présentation des processus d'utilisateurs | olimiles | De programmation et de script Shell | 2 | 08-18-2006 03:57 PM |
| Les utilisateurs et les processus | Chiefos | UNIX pour les nuls Questions et réponses | 17 | 06-17-2006 05:16 PM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
impression de chaque utilisateur par des processus
bonjour tous,
Je tente d'obtenir le par chaque utilisateurs avec leur traitement. J'ai essayer de plusieurs façons, mais je ne suis pas se faire que mon code est #! bin / bash / users \u003d `cat / etc / passwd | cut-d ':'-f5` onlineusers \u003d `utilisateurs | tr '." ' » $ onlineusers | lire tout les utilisateurs `$` faire echo `ps-U $ utilisateurs» fait mais sa ne fonctionne pas, la racine: il dit command not found pls quelque manière que ce soit autour d'elle. |
|
||||
|
La syntaxe correcte est Code:
while read users Qu'est-ce que vous avez essaye d'évaluer la valeur de $ utilisateurs une commande, vous obtenez donc "root: command not found" (parce que le premier utilisateur est root, ce qui est la commande, et le reste des utilisateurs sont passés comme arguments à cette commande). Pourquoi est-ce que vous extrayez les utilisateurs de / etc / passwd quand vous finissez par la lecture de leur utilisateurs? Sur mon système, utilisateurs imprime le même utilisateur plusieurs fois si elles sont enregistrées en plusieurs fois, ce qui pourrait ne pas être ce que vous voulez. Voici l'ensemble du script avec les problèmes corrigés: Code:
#!/bin/bash users | tr '. ' ' ' | sort -u | while read user do ps -U "$user" done Le second argument de tr est une nouvelle ligne dans des guillemets simples; ouverture cite la fin de la ligne, nouvelle ligne, la fermeture de la citation. Oui, c'est une chaîne de caractères valides en bash (et sh en général). Il s'agit de la sortie de utilisateurs sur plusieurs lignes afin que nous puissions sort-u de se débarrasser de tous les doublons. La sortie de utilisateurs Ubuntu sur ma boîte n'a pas de suspension en elle, mais peut-être la vôtre est différente. J'ai également pris la (autant que je puisse dire) echo `backticks gratuit» et l'affectation temporaire de la production des utilisateurs à une variable qui ne se servir qu'une fois. Oh, et je fixe la ligne shebang - il ne devrait pas être slash après bash, et un avant bin. Dernière édition par époque au 04.28.2008 04:16 PM.. Motif: Slash avant bin |
|
||||
|
re
Merci ère
Avez-u essayé le code, sa ne fonctionne pas sur mon mien. Je tente d'obtenir en ligne individuelle vrai nom et pas le nom d'utilisateur avec leur correspondance processus. Utilisation de l'etc / passwd serait le nom mais la comparaison avec les utilisateurs en ligne est le peu compliqué. |
|
||||
|
Oui, j'ai testé ici (mais seulement après que vous avez demandé). Je n'ai qu'un utilisateur de sorte qu'il n'est pas un test très complet. Avez-vous un message d'erreur, ou ne pas faire ce que vous attendez? Où voulez-vous que le vrai nom à afficher? Code:
#!/bin/bash users | tr '. ' ' ' | sort -u | while read user do sed -n "s/:[^:]*:[^:]*$//;s/^$user:[^:]*:[^:]*:[^:]*://p" /etc/passwd ps -U "$user" done Le sed script est l'équivalent moral de grep "^ $ user:" / etc / passwd | cut-d:-f5 qui est sans doute plus lisible. Peut-être que vous souhaitez utiliser à la place, en fait. Dernière édition par époque au 04.28.2008 04:42 PM.. Motif: Explication de l'alternative et à sed script |
|
||||
|
Merci pour la réponse ère
Mais i toujours pas trouvé d'erreur nom d'utilisateur et une partie de cette contre chaque utilisateur ********* ********* ********* Sélection simple sélection par liste ********* -A tous les processus-C par le nom de la commande -N-G annuler la sélection par le groupe ID réel (prend en charge les noms) -a tous w / tty, sauf session leaders-U par ID d'utilisateur réel (prend en charge les noms) -d tous sauf session chefs-g par session ou par nom de groupe efficace -e-p tous les processus par ID de processus T tous les processus de ce terminal-s dans le processus de sessions donné a tous les w / tty, y compris d'autres utilisateurs par le t-tty g OBSOLETE - NE PAS UTILISER-u par des ID utilisateur (prend en charge les noms) r que les processus en cours U procédés pour les utilisateurs x processus hors contrôle par ttys t tty Format de sortie *********** ********** *********** long options *********** -o, o user-defined-f full - Group - User - pid - cols - PPID -j, j job control s signal - group - user - sid - rows - info -O, O-ov préchargés mémoire virtuelle - cumulative - format - désélectionnez -l, l long u user-oriented - sort - tty - des forêts - version -F extra full X registres - de la position - sans-titre - contexte ********* Misc options ********* -V, V show version L list format codes f ASCII art forestier -m, m,-L,-T, H S threads enfants en somme-y change-l format -M, Z de données de sécurité c vrai nom de commande-c horaires de classe -w, w large sortie n numérique WCHAN, UID-H processus hiérarchie |
![]() |
| Bookmarks |
| Tags |
| linux, ubuntu |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|