Newsgroup: it.comp.os.linux.development
Titolo: aiuto bash programming

Ciao, qualcuno mi aiuta a risolvere questo esercizio?
Partendo dal comando predefinito
ps -o "FORMAT"
dove l'opzione -o va scelta in base alle informazioni sullo stato del
processo utili allo svolgimento dell'esercizio, si implementi il comando
psview cmd1 ... cmdK
che prende in ingresso una lista di comandi e li associa ai processi che li
eseguono. Per ciascun processo, inoltre, va costruita la lista dei
cosiddetti parent process in cui ciascun elemento č il processo padre del
precedente. Ciascuna lista deve terminare col processo init, il padre di
tutti i processi.
Veramente non so piů che pesci pigliare HELP !
--------------------------------
Inviato via 
http://usenet.libero.it

 Ciao, qualcuno mi aiuta a risolvere questo esercizio?
...
Io direi che se non inizi nemmeno a farlo qui dentro ne trovi pochi che lo
fanno al posto tuo, e pure gratis.
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
	**ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! When you say "I wrote a program that crashed Windows", people just stare
     at you blankly and say "Hey, I got those with the system, *for free*" !>-
                                (By Linus Torvalds)

 eseguono.
per ciclare sui parametri dati allo script:
     for parameter; do
         ...
     done
per avere un elenco completo dei processi in formato "PID PPID COMANDO":
     ps -e -o pid,ppid,ucmd
per ignorare la prima riga di output
     ... | tail -n +2
per catturare l'output di un comando in una variabile
     variabile=`comando`
o anche
     variabile=$(comando)
per ciclare sulle righe in una variabile
     IFS="
     "
     for linea in $variabile; do
         ...
     done
(notare che lo splitting avviene del tutto PRIMA di entrare nel ciclo 
do...done, per cui puoi modificare IFS tranquillamente quando sei nel ciclo)
per splittare il contenuto di una variabile base agli spazi (meglio: in 
base al contenuto di $IFS):
     IFS=" "
     set -- $variabile
     echo "$1"
     echo "$2"
     ...
e dopo, per avere tutta la riga dal terzo campo in poi
     shift 2
     echo "$@"
per impostare un elemento di una variabile array:
     nomearray[indice]="valore"
per utilizzare il valore di un elemento di una variabile array:
     ${nomearray[indice]}
per vedere se due numeri sono uguali
     if [ "$valore1" -eq "$valore2" ]; then
         ...
     fi
per vedere se due stringhe sono uguali
     if [ "$valore1" = "$valore2" ]; then
         ...
     fi
per avere il nome nudo di un comando (senza path)
     c=$(basename /path/completo/al/comando)
Il resto dovrebbe venire piu` o meno da se`. ;-)
-- 
   |   \    \  | ___|_  |_  | ianezz a casa sua... :-)
   |  _ \  | \ | _|    /   /  Visita il LinuxTrent a
  _|_/  _\_|  _|____|___|___| 
http://www.linuxtrent.it

 ha
scritto:

Se qualcuno mi avesse chiesto qualcosa nel campo in cui sono competente, di
certo non avrei risposto che doveva provarci da solo. Soprattutto in un
forum, che penso sia un posto dove imparare, io sinceramente volevo solo
imparare, per questo ho postato. Potevi fare a meno di rispondere
sinceramente.


 ha
scritto:

Io avevo provato a buttare giù queste righe, intanto ti ringrazio per la
risposta:
#!/bin/bash
for cc in $*; do
ps -o args,ppid,pid | grep $cc
done;
for cc in $*; do
pstree -phG
done;
c'è qualcosa di giusto ?


 io sinceramente volevo solo imparare
Bene. 
http://learn.to/quote
-- 
Sono un servitore del Fuoco Segreto, e reggo la fiamma di Anor.
A nulla ti servira' il fuoco oscuro, fiamma di Udun.
Torna nell'Ombra! Non puoi passare.

 sinceramente.
Impara a quotare prima di scrivere, per cortesia.
-- 
GHERdO, happy GNU/linux user.
 
http://www.cyberspace.org/~gherdo/

 sinceramente.
Guarda, da quello che leggo questo e' un esercizio che hai da fare. Una
richiesta come la tua suona pericolosamente vicino a "non mi interessa
imparare a fare questa cosa, c'e' qualcuno che la fa al posto mio?", che su
un NG come questo non sta ne' in cielo ne' in terra. Non e' questione di
competenza. Nessuno e' un tuttologo. Se non inizi a interessarti da solo
alle tue necessita' a me/noi chi lo fa fare? Nessuna vena polemica; se vuoi
rispondere eventualmente fallo via email che sto discorso non e' certo IT.
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! A conclusion is simply the place where someone got tired of thinking. !>-


Ventimila persone che mi han detto di arrangiarmi e solo una (Matteo) che mi
ha dato qualche dritta. Ora ringrazio Matteo, agli altri invece dirò che mi
è dispiaciuto aver postato, visto che gli ho arrecato tanto nervoso. Ad ogni
modo, se ho postato, vuol dire che non riuscivo a venirne fuori e che
cercavo qualcuno che mi aiutasse, dandomi degli strumenti per risolvere il
mio problema. Non pensavo che per quelli come me senza alba di bash fosse
vietato chiedere aiuto in un NG, ora so che prima di postare, dovrò
formulare la domanda in modo ELITARIO, o forse dovrò parlare solo di
argomenti che risiedono nella categoria di ALTA PROGRAMMAZIONE. Concludo
dicendo, che ho fatto la richiesta d'aiuto propprio perchè me ne frega, ci
avrei messo 5 minuti a inoltrare via mail a un programmatore il problema,
poi lui a sua volta mi avrebbe inoltrato la fattura. Non era certo il
programma che mi interessava era il capire come si faceva. Arrivederci


 Arrivederci
Addio
