Pagina 1 di 2
[bash] leggere stdout con dialog
Inviato: dom 18 mag 2008, 14:10
da danix
Ciao a tutti,
qualcuno di voi mi sa spiegare come faccio a leggere l'output di un programma in esecuzione e a visualizzarlo con dialog??
mi spiego meglio...
da uno script lancio cdrecord e vorrei visualizzare l'andamento della masterizzazione con una barra di caricamento in dialog presente nello script stesso invece di visualizzare tutto l'output di cdrecord... è possibile secondo voi??
Spero mi saprete aiutare...
Grazie mille
Ciau
Re: [bash] leggere stdout con dialog
Inviato: dom 18 mag 2008, 15:29
da Mario Vanoni
Scusa tanto, secondo man dialog
dialog --gauge ...
potrebbe essere quello che cerchi.
Mario Vanoni
Re: [bash] leggere stdout con dialog
Inviato: dom 18 mag 2008, 15:58
da danix
grazie Mario,
infatti gauge era la dialog che volevo usare, il mio dubbio (forse non espresso troppo chiaramente) era sul come fare a far leggere a gauge l'avanzamento di cdrecord...
potrei lanciarlo in una subshell??
Re: [bash] leggere stdout con dialog
Inviato: dom 18 mag 2008, 16:05
da targzeta
Prova ad eseguire questo

:
Codice: Seleziona tutto
(i=0; while (( $i <= 100 )); do echo $i; let i++; sleep 1; done )| dialog --gauge "ciao" 10 20
Spina
Re: [bash] leggere stdout con dialog
Inviato: dom 18 mag 2008, 16:15
da danix
ciao spina, grazie...
per provare gauge ho usato quest'altro script che avevo trovato in giro per la rete:
Codice: Seleziona tutto
#!/bin/sh
percent=0
(
while test $percent != 110
do
echo $percent
echo "XXX"
echo "This is how the gauge appears"
echo "XXX"
echo "See how the message changes"
echo "XXX"
percent=`expr $percent + 10`
sleep 1
done
) |
dialog --title "Gauge works!" --gauge "This is how a gauge appears on the command line" 10 60 0
funziona più o meno come il tuo script...
Il fatto è che non so come catturare l'output di cdrecord (ma anche di un qualsiasi altro programma) e farlo leggere a gauge...
Questo è l'output di cdrecord durante la masterizzazione:
Codice: Seleziona tutto
Track 01: 190 of 190 MB written (fifo 100%) [buf 99%] 8.2x.
nel caso specifico stavo scrivendo una ISO DI 190 MB a 8x, la mia idea era di prendere la dimensione totale dell'immagine (190) e far avanzare gauge usando quel valore come 100%...
che ne pensi??
Re: [bash] leggere stdout con dialog
Inviato: dom 18 mag 2008, 16:18
da targzeta
Se non ricordo male cdrecord non ti aggiorna sempre mostrandoti la percentuale di dati scritti? Il problema lo si dovrebbe risolvere in maniera molto più semplice di quello che pensi.
Spina
Re: [bash] leggere stdout con dialog
Inviato: dom 18 mag 2008, 16:30
da danix
leggendo il man l'unica cosa che ho trovato è stata il flag -v che mostra l'avanzamento del processo di masterizzazione, ma l'ho usata e non ho letto percentuali...
che intendi quando dici che il problema si dovrebbe risolvere in maniera più semplice di quello che penso??
Re: [bash] leggere stdout con dialog
Inviato: dom 18 mag 2008, 16:33
da targzeta
Niente, io pensavo che cdrecord di suo ti mostrava delle righe consegutive ogni tot dicendoti l'avanzamento in percentuale dei dati scritti. Ma quello deve essere mkisofs allora.
Durante l'esecuzione di cdrecord non hai niente che cambia? La riga che hai postato prima? cos'è?
Spina
Re: [bash] leggere stdout con dialog
Inviato: dom 18 mag 2008, 16:41
da danix
E' una riga che rimane fissa e si aggiorna ogni secondo, ma sempre sulla stessa riga... quello che dici tu è mkisofs...
Re: [bash] leggere stdout con dialog
Inviato: dom 18 mag 2008, 16:50
da targzeta
danix85 ha scritto:E' una riga che rimane fissa e si aggiorna ogni secondo, ma sempre sulla stessa riga... quello che dici tu è mkisofs...
Ok, devi ridirigere l'output di cdrecord su di un tuo script (tanto lui stampa sempre sullo stdout). Fammi provare una cosa....
Spina
Re: [bash] leggere stdout con dialog
Inviato: dom 18 mag 2008, 16:58
da Mario Vanoni
danix85 ha scritto:E' una riga che rimane fissa e si aggiorna ogni secondo, ma sempre sulla stessa riga... quello che dici tu è mkisofs...
Quando usavo (e funzionava ancora) mettevo
cdrecord ... -v -v ... file.iso
e segnalava la progressione in percentuale.
Mario Vanoni
PS Dal 12.0 cdrecord mi produce solo frisbee,
k3b va ... una tantum, growisofs sempre perfetto.
Re: [bash] leggere stdout con dialog
Inviato: dom 18 mag 2008, 17:14
da danix
Mario Vanoni ha scritto:PS Dal 12.0 cdrecord mi produce solo frisbee,
k3b va ... una tantum, growisofs sempre perfetto.
ma growisofs lo posso usare solo per i dvd o sbaglio??
Re: [bash] leggere stdout con dialog
Inviato: dom 18 mag 2008, 17:19
da Mario Vanoni
danix85 ha scritto:Mario Vanoni ha scritto:PS Dal 12.0 cdrecord mi produce solo frisbee,
k3b va ... una tantum, growisofs sempre perfetto.
ma growisofs lo posso usare solo per i dvd o sbaglio??
Ovvio, bruciare solo DVD, ma con i prezzi di oggi,
vale la pena anche con un *.iso di 700MB.
Mario Vanoni
Re: [bash] leggere stdout con dialog
Inviato: dom 18 mag 2008, 17:23
da targzeta
Quello che chide danix si può comuque fare, basta creare uno scriptino che preleva i dati essenziali dall'output di cdrecord, ovvero il totale dei mega da scrivere e i mega scritti attualmente e poi inviarli a dialog. Appena ho un attimo provo a simulare poi vi dico.
Spina
Re: [bash] leggere stdout con dialog
Inviato: dom 18 mag 2008, 17:28
da danix
mentre aspetto buone nuove su questo fronte ne approfitto e vi ringrazio per l'interessamento...
