Discussion:
Captura de datos de TTY
(demasiado antiguo para responder)
Bypper
2009-11-02 22:19:28 UTC
Permalink
Muy buenas,

Se me presenta un problema un tanto estrambótico que no se como atajar,
os cuento:

Tengo un script mio: MIO.SH que a su vez llama a otro: OTRO.SH. Este
script no debe arrojar nada por pantalla asi que le llamo con el típico
OTRO.SH 2>&1 > file.log habitual.

El problema es que aun así sigue tirando info por pantalla. Y veo que el
OTRO.SH (QUE NO PUEDO MODIFICAR) llama a su vez a otro: OTRO2.SH.

Miro el OTRO2.SH (QUE TAMPOCO PUEDO MODIFICAR :-( y parece que esta
tirando info directamente contra la $tty.

Teniendo en cuenta que no puedo modificar mas que el MIO.SH...

Habría alguna forma de evitar esa salida por pantalla?

no se, se me ocurre capturar la info de la $tty, pero no se como. O
alguna otra opción?

NOTA: No se si importa pero mi script tiene BASH como interprete de
comandos, y los otros KSH.

gracias,
un saludo,
José Luis Pérez Diez
2009-11-03 10:05:47 UTC
Permalink
Post by Bypper
Teniendo en cuenta que no puedo modificar mas que el MIO.SH...
Habría alguna forma de evitar esa salida por pantalla?
Lo puedes hacer usando un chroot o si $tty es una variable quizas sea
mas sencillo modificar el envirment que reciben los otros scripts.

--
Los programadores esta ocupados intendtado mejorar los programas a
prueba de idiotas. Mientras tanto el universo intenta mejorar los
idiotas. El universo va ganando
Gonzalo Pérez de Olaguer Córdoba
2009-11-03 10:38:51 UTC
Permalink
Post by Bypper
Muy buenas,
Se me presenta un problema un tanto estrambótico que no se como atajar,
Tengo un script mio: MIO.SH que a su vez llama a otro: OTRO.SH. Este
script no debe arrojar nada por pantalla asi que le llamo con el típico
OTRO.SH 2>&1 > file.log habitual.
El problema es que aun así sigue tirando info por pantalla. Y veo que el
OTRO.SH (QUE NO PUEDO MODIFICAR) llama a su vez a otro: OTRO2.SH.
Miro el OTRO2.SH (QUE TAMPOCO PUEDO MODIFICAR :-( y parece que esta
tirando info directamente contra la $tty.
Teniendo en cuenta que no puedo modificar mas que el MIO.SH...
Habría alguna forma de evitar esa salida por pantalla?
no se, se me ocurre capturar la info de la $tty, pero no se como. O
alguna otra opción?
No sé si te puede servir, pero el programa expect se usa para
dialogar con programas que se comunican vía tty.
--
Gonzalo Pérez de Olaguer Córdoba <***@iies.es> --- www.gpoc.es
PGP key 2861C704 --- F206 5671 6789 425D 111C 1302 214F 1934 2861 C704
J.A. Gutierrez
2009-11-05 15:18:42 UTC
Permalink
Bypper <***@microsoft.com> wrote:
: Muy buenas,

: Se me presenta un problema un tanto estrambótico que no se como atajar,
: os cuento:

: Tengo un script mio: MIO.SH que a su vez llama a otro: OTRO.SH. Este
: script no debe arrojar nada por pantalla asi que le llamo con el típico
: OTRO.SH 2>&1 > file.log habitual.

Es que no es lo mismo "2>&1 > log" que "> log 2>&1"!

Hay que entender lo que se escribe:

2>&1 : dirige la stderr al mismo sitio que la stdout.
log: dirige la stdout a log
Es decir, que de la primera forma le dices a la orden
que escriba stderr en el mismo sitio que stdout (tty) y
luego que la stdout a log (pero stderr se queda como esta).

Demostrazione in tempo di menuetto:

:~/ (echo foo >&2) > /dev/null 2>&1
:~/ (echo foo >&2) 2>&1 > /dev/null
foo

quesqueloquequeriqueriamosdemostrar
--
PGP and other useless info at \
http://webdiis.unizar.es/~spd/ \
finger://daphne.cps.unizar.es/spd \ Timeo Danaos et dona ferentes
ftp://ivo.cps.unizar.es/pub/ \ (Virgilio)
Bypper
2009-11-05 20:06:37 UTC
Permalink
Post by J.A. Gutierrez
: Muy buenas,
: Se me presenta un problema un tanto estrambótico que no se como atajar,
: Tengo un script mio: MIO.SH que a su vez llama a otro: OTRO.SH. Este
: script no debe arrojar nada por pantalla asi que le llamo con el típico
: OTRO.SH 2>&1 > file.log habitual.
Es que no es lo mismo "2>&1 > log" que "> log 2>&1"!
2>&1 : dirige la stderr al mismo sitio que la stdout.
log: dirige la stdout a log
Es decir, que de la primera forma le dices a la orden
que escriba stderr en el mismo sitio que stdout (tty) y
luego que la stdout a log (pero stderr se queda como esta).
si, si, lo se

redirijo la stderr al mismo sitio que la stdout y luego lo redirijo todo
al fichero

en condiciones normales, NADA debiera aparecer por pantalla, pero claro,
si que lo hacia, ya que desde el script OTRO.SH se estaba lanzando la
info directamente a la $tty.
Post by J.A. Gutierrez
:~/ (echo foo >&2) > /dev/null 2>&1
:~/ (echo foo >&2) 2>&1 > /dev/null
foo
quesqueloquequeriqueriamosdemostrar
Loading...