[bash] leggere stdout con dialog

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

[bash] leggere stdout con dialog

Messaggio 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
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: [bash] leggere stdout con dialog

Messaggio da Mario Vanoni »

Scusa tanto, secondo man dialog

dialog --gauge ...

potrebbe essere quello che cerchi.

Mario Vanoni

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: [bash] leggere stdout con dialog

Messaggio 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??
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: [bash] leggere stdout con dialog

Messaggio da targzeta »

Prova ad eseguire questo :D:

Codice: Seleziona tutto

(i=0; while (( $i <= 100 )); do echo $i; let i++; sleep 1; done )|  dialog --gauge "ciao" 10 20
Spina
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: [bash] leggere stdout con dialog

Messaggio 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??
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: [bash] leggere stdout con dialog

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: [bash] leggere stdout con dialog

Messaggio 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??
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: [bash] leggere stdout con dialog

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: [bash] leggere stdout con dialog

Messaggio da danix »

E' una riga che rimane fissa e si aggiorna ogni secondo, ma sempre sulla stessa riga... quello che dici tu è mkisofs...
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: [bash] leggere stdout con dialog

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: [bash] leggere stdout con dialog

Messaggio 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.

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: [bash] leggere stdout con dialog

Messaggio 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??
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Mario Vanoni
Iper Master
Iper Master
Messaggi: 3174
Iscritto il: lun 3 set 2007, 21:20
Nome Cognome: Mario Vanoni
Slackware: 12.2
Kernel: 3.0.4 statico
Desktop: fluxbox/seamonkey
Località: Cuasso al Monte (VA)

Re: [bash] leggere stdout con dialog

Messaggio 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

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6643
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

Re: [bash] leggere stdout con dialog

Messaggio 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
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama

Avatar utente
danix
Staff
Staff
Messaggi: 3289
Iscritto il: ven 27 ott 2006, 19:32
Nome Cognome: Danilo M.
Slackware: 64 current
Kernel: 6.12.13 x86_64
Desktop: i3
Località: Verona (VR)
Contatta:

Re: [bash] leggere stdout con dialog

Messaggio da danix »

mentre aspetto buone nuove su questo fronte ne approfitto e vi ringrazio per l'interessamento... :D
danix
danix ha scritto:non sono molto presente sul forum, e di ciò mi scuso con tutti

Rispondi