![]() |
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Rules | Lenker | Album | FAQ | Medlemsliste | Kalender | Søke | Dagens innlegg | Marker forumene som lest |
| Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her. |
Mer UNIX og Linux Forum Emner Du kan finne nyttig
|
||||
| Tråd | Tråd startet | Forum | Svar | Siste innlegg |
| Prosesser og brukere | barbus | Shell programmering og Skripting | 22 | 10-03-2007 08:09 |
| brukere og prosesser | iago | UNIX for Dummies Spørsmål og svar | 3 | 09-10-2007 03:51 |
| Jeg trenger et scipt til e brukere med inaktiv prosesser! | sheppy28 | Shell programmering og Skripting | 0 | 02-02-2007 04:08 |
| Viser prosesser av brukere | olimiles | Shell programmering og Skripting | 2 | 08-18-2006 03:57 |
| Brukere og prosesser | Chiefos | UNIX for Dummies Spørsmål og svar | 17 | 06-17-2006 05:16 |
![]() |
|
|
LinkBack | Thread Tools | Søk i denne tråden | Rate Thread | Visningsmoduser |
|
|
|
||||
|
Each brukere av prosesser
Hei Alle,
Jeg prøver å få alle brukere av med sin behandling. Jeg må prøve det på flere måter, men jeg er ikke å få deres min koden #! bin / bash / brukere \u003d `cat / etc / passwd | cut-d ':'-F5` onlineusers \u003d `brukere | tr '." '' ` $ onlineusers | mens les `$ brukere` gjøre echo `ps-U $ brukere` ferdig men det ikke fungerer, root: står det at kommandoen ikke funnet pls noen måte rundt det. |
|
||||
|
Riktig syntaks er Code:
while read users Hva har du prøver å vurdere verdien av $ brukere som en kommando, og dermed får du "root: command not found" (fordi den første brukeren root, så er kommandoen, og resten av brukerne sendes som argumenter til denne kommandoen). Hvorfor trekke brukere i / etc / passwd når du ende opp med å lese dem fra brukere? På mitt system, brukere utskrifter samme bruker flere ganger dersom de er logget inn flere ganger, noe som kanskje ikke er det du ønsker. Her er hele script med problemene løst: Code:
#!/bin/bash users | tr '. ' ' ' | sort -u | while read user do ps -U "$user" done Det andre argumentet til tr er en newline i enkle anførselstegn; åpning tilbud slutten av linjen, ny linje, avsluttende sitat. Ja, det er en gyldig streng i bash (og sh generelt). Dette bryter opp produksjonen av brukere på flere linjer, slik at vi kan sort-u å bli kvitt noen duplikater. Utdataene for brukere på min Ubuntu boksen har ikke full stopp i den, men kanskje din er annerledes. Jeg tok ut (så langt jeg kunne fortelle) gratis echo `backticks` og midlertidige oppdrag for produksjon av brukere til en variabel som bare brukes én gang. Oh, og jeg løst shebang linje - Det skal ikke være noen skråstrek etter bash og ett før kasse. Sist endret av æra; 04-28-2008 på 04:16.. Grunn: skråstrek foran bin |
|
||||
|
re
Takk æra
Har u prøvd koden sin fungerer ikke på meg mine. Jeg prøver å få individuelle online virkelige navn og ikke USERNAME med korrespondanse prosesser. Bruke etc / passwd ville få navnet men å sammenligne den med brukere online er komplisert bit. |
|
||||
|
Ja, jeg har testet det her (men bare etter at du har bedt om). Jeg har bare én bruker, slik at det ikke er en svært grundig test. Får du en feil, eller gjør det ikke gjøre hva du forvente? Hvor ønsker du det virkelige navnet som skal vises? Code:
#!/bin/bash users | tr '. ' ' ' | sort -u | while read user do sed -n "s/:[^:]*:[^:]*$//;s/^$user:[^:]*:[^:]*:[^:]*://p" /etc/passwd ps -U "$user" done Den, det sed skriptet er moralen tilsvarer grep "^ $ bruker:" / etc / passwd | cut-d:-F5 som er kanskje mer lesbare. Kanskje du vil bruke dette i stedet, faktisk. Sist endret av æra; 04-28-2008 på 04:42.. Grunn: Forklaring av og alternativ til sed script |
|
||||
|
Takk for svaret æra
Men jeg fortsatt får feil brukernavn ikke funnet, og noe av dette mot hver bruker ********* Enkel markering ********* ********* utvalg av listen ********* -A alle prosesser-C ved kommandoen navn -N negate valg-G med ekte gruppe-ID (støtter navn) -en alle m / tty unntatt økt ledere-U med ekte bruker-ID (støtter navn) -d alle unntatt økt ledere-g ved sesjon eller ved effektiv gruppenavn -e alle prosesser-p av prosess-ID T alle prosesser på dette terminal-s prosesser i økter gitt en all m / tty, inkludert andre brukere-t ved tty g foreldet - Ikke bruk-u av effektive bruker-ID (støtter navn) r bare kjører prosesser U prosesser for bestemte brukere x prosesser u / kontrollerende ttys t ved tty *********** Utdataformat ********** *********** lang alternativer *********** -o, o brukerdefinerte-f full - Group - Bruker - pid - cols - ppid -J, J jobb kontroll s signal - gruppe - user - sid - rader - info -O, O forhåndslastede-ov virtuelt minne - kumulativt - format - avvelge -l, l lang u bruker-orienterte - sorter - tty - Skog - versjon -F ekstra full X registrerer - kurs - no-kurs - kontekst ********* Misc alternativer ********* -V, V vis versjon L listeformat koder f ASCII kunst skogen -m, m,-L,-T, H tråder S barn i sum-y endre-l-format -M, Z sikkerhet data c sant kommandoen navn-c scheduling klassen -w, w bredt output n numerisk WCHAN, UID-H prosessen hierarki |
![]() |
| Hugseliste |
| Tags |
| linux, ubuntu |
| Thread Tools | Søk i denne tråden |
| Visningsmoduser | Ranger denne tråden |
|
|