PDA

View Full Version : [BASH]Script per leggere un output


ilmanu
14-05-2010, 23:04
Ciao a tutti, come da titolo dovrei creare uno script per leggere un output e produrre a sua volta come output un determinato pezzo di cio' che legge...

nelle specifico voglio che quando lancio pippo lui mi estragga il pid dal comando ps aux|grep -i $1 posso concedermi il lusso di non preoccuparmi se ci sono piu' di un risultato so che sara' uno o che cmq sarebbe il primo contando che il secondo e' il comando grep che cerca $1, il pid e' il secondo gruppo di caratteri...

ho cercato con google ma ci sono esempi solo per leggere le righe dei file... mi date una mano? grasssiiieee :D

Gimli[2BV!2B]
15-05-2010, 00:06
Uhmm... tutto molto chiaro... :what:

Stando semplici semplici: man pidof (http://man.cx/pidof) ?
gimli@kwankey ~$ pidof kdm
1627

gimli@kwankey ~$ pidof chrome
9497 9492 9444 9437 9305 9276 9275 9270

Seguendo la tua strada con ps:
gimli@kwankey ~$ ps -o pid,args -u gimli | grep "/usr/lib/chromium-browser/chrome --type=zygote"
9276 /usr/lib/chromium-browser/chrome --type=zygote
9556 grep --colour=auto /usr/lib/chromium-browser/chrome --type=zygote

gimli@kwankey ~$ ps -o pid,args -u gimli | grep "/usr/lib/chromium-browser/chrome --type=zygote$"
9276 /usr/lib/chromium-browser/chrome --type=zygote

gimli@kwankey ~$ ps -o pid,args -u gimli | grep "/usr/lib/chromium-browser/chrome --type=zygote$" | cut -d\ -f2
9276Per evitare di avere il match del comando grep è sufficiente il $ alla fine: indica che in quel punto la riga finisce.
man ps (http://man.cx/ps) e man cut (http://man.cx/cut) per dettagli sulle altre opzioni.

ilmanu
15-05-2010, 10:22
;31978281']Uhmm... tutto molto chiaro... :what:

Stando semplici semplici: man pidof (http://man.cx/pidof) ?
gimli@kwankey ~$ pidof kdm
1627

gimli@kwankey ~$ pidof chrome
9497 9492 9444 9437 9305 9276 9275 9270

Seguendo la tua strada con ps:
gimli@kwankey ~$ ps -o pid,args -u gimli | grep "/usr/lib/chromium-browser/chrome --type=zygote"
9276 /usr/lib/chromium-browser/chrome --type=zygote
9556 grep --colour=auto /usr/lib/chromium-browser/chrome --type=zygote

gimli@kwankey ~$ ps -o pid,args -u gimli | grep "/usr/lib/chromium-browser/chrome --type=zygote$"
9276 /usr/lib/chromium-browser/chrome --type=zygote

gimli@kwankey ~$ ps -o pid,args -u gimli | grep "/usr/lib/chromium-browser/chrome --type=zygote$" | cut -d\ -f2
9276Per evitare di avere il match del comando grep è sufficiente il $ alla fine: indica che in quel punto la riga finisce.
man ps (http://man.cx/ps) e man cut (http://man.cx/cut) per dettagli sulle altre opzioni.

allora anzitutto grazie, stanotte poi dopo ore sono giunto a 2 conclusioni
-ho estratto il pid con cut come mi suggerisci tu
-killall fa gia quello che volevo fare io :D


pero' ora vorrei qualcosa di piu' interessante, del tipo:

opera ad esempio attiva piu' di un processo.... fra cui anche quello per il flugin flash, ora sarebbe bello se riuscissi a fare qualcosa che eseguito ps -eo pid,comm|grep -i $1|cut -d\ -f2 legga tutte le righe generate, e mi proponga la scelta di quale processare e poi concludere acquisendo il pid dalla riga scelta e uccidere il processo.... dici che swi puo' fare o bisogna passare al c?