Comandi esterni | STDOUT - STDERR

Ciao a tutti.

Da uno script ruby ho la necessità di lanciare dei comandi esterni
(ZIP di un elevato numero di file)

Ho provato con system, ma, mi servirebbe
un maggior controllo su STDOUT e STDERR

Ho provato facendo loggare STDOUT e STDERR su un file
system (“#{comando} > #{logfile} 2>&1”)

e andando poi a controllare il contenuto dello stesso.
Ma la cosa mi sembra un po “macchinosa”.

Ho ora trovato open3
(http://www.ruby-doc.org/stdlib/libdoc/open3/rdoc/index.html)

che fa tutto quello che mi serve ma non vorrei che si “perda” qualcosa
da STDOUT e/o STDERR.

Qualcuno usa open3 ? ci sono controindicazioni nell’utilizzo ?
Avete consigli su come gestire la cosa ?

Grazie

Simone

On 12/28/06, Simone F. [email protected] wrote:

Ciao a tutti.

Da uno script ruby ho la necessità di lanciare dei comandi esterni
(ZIP di un elevato numero di file)

Ho provato con system, ma, mi servirebbe
un maggior controllo su STDOUT e STDERR

Hal F. “The Ruby Way” consiglia di usare popen3.

In alternativa, perché non provi ad usare una libreria dentro a Ruby
piuttosto che un comando esterno? Tipo Rubyzip
(http://rubyzip.sourceforge.net/)

Disclaimer: non ho provato personalmente in nessuna delle due maniere :slight_smile:

Matteo

Matteo V. wrote:

Hal F. “The Ruby Way” consiglia di usare popen3.
OK.

In alternativa, perché non provi ad usare una libreria dentro a Ruby
piuttosto che un comando esterno? Tipo Rubyzip
(http://rubyzip.sourceforge.net/)
Preferisco utilizzare funzioni “standard” per la creazione di ZIP, non
vorrei avere problemi di “compatibilità” con i file creati.

Simone

cmd=“echo prova > prova.txt”
#{cmd}

Il 28/12/06, Simone F.[email protected] ha scritto: