Uso di grep sui processi [era: adsl]

Marco De Benedetto debe@galliera.it
Gio 28 Set 2006 18:56:33 CEST


On gio 28 set, Valerio Fuoglio (thewally) wrote:
> Alle 18:03, giovedì 28 settembre 2006, Marco De Benedetto ha scritto:
> > La soluzione 'grep -v' presenta due problemi: l'ulteriore esecuzione
> > di grep e soprattutto non fa quello che intendi.
> 
> Allora il mio computer deve avere qualche problema, perchè l'output dei 
> due comandi è esattamente *identico*
> 
> wally@cronus ~ $ ps aux|grep cron|grep -v grep
> root 8840  0.0  0.0 1968 648 ? Ss 12:11 0:00 /usr/sbin/cron
> root 9890  0.0  0.0  1504  224 ? S<s  12:13 0:00 /sbin/dhcpcd -h 
> cronus -m 2000 eth2
> 
> wally@cronus ~ $ ps aux|grep [c]ron
> root 8840 0.0  0.0 1968 648 ?  Ss 12:11 0:00 /usr/sbin/cron
> root 9890 0.0  0.0 1504 224 ?  S<s  12:13 0:00 /sbin/dhcpcd -h cronus -m 
> 2000 eth2
> 
> Se in certi casi funziona ed in altri no, spiega il perchè...
> Credo sia più istruttivo per tutti. ;)

Mi sembrava che l'esempio potesse essere la spiegazione ma va bene,
vediamo passo passo il perché.

"Non fa quello che intendi" significa:
1) tu intendi eliminare la riga dell'output di 'ps axu' relativa al tuo
   processo 'grep';
2) in realtà stai eliminando tutte le righe che, pur conenendo quello
   che cerchi, contengono *anche* la stringa 'grep'.

Quindi se per caso tra i processi che cerchi ce ne è uno che contiene la
stringa 'grep' (come nel mio esempio) tu non lo vedi; e nel tuo esempio
qui sopra non vedresti i processi /cron/ dell'ipotetico utente greport.

-- 
ciao,
debe


Maggiori informazioni sulla lista glug