El día 25 de junio de 2010 08:33, Alfredo Daniel Rezinovsky
<[email protected]> escribió:
> En bash puedo abrir un file descriptor para input y output a un archivo
> usando:
>  exec 4<> filename
> despues de eso puedo leer y escribir el fd numero 4 con:
>  echo $algo >&4
>  read algo <&4
>
> Tambien puedo convertir el stdin o el stdout de un proceso en un fake
> file descriptor usando <(proceso) o >(proceso) y puedo:
>  exec 4< <(proceso)
>  read algo <&4
> o
>  exec 4> >(proceso)
>  echo $algo >&4
>
> La pregunta es como abrir stdin Y stdout de un proceso AL MISMO TIEMPO
> (pueden ser fds distintos) para despues leer y escribir desde bash
>
> Lo que quiero es desde un script enviar comandos al proceso, leer la
> respuesta, enviar más comandos, etc.
>
> --
> Alfredo D. Rezinovsky
> (Sys|Net)Admin
> LI² -- FING -- UNCuyo
>
>
>
>
>
>


Con un par de pipes tal vez? No se me ocurre otra forma.

pipe_in=/tmp/mypipe_in
pipe_out=/tmp/mypipe_out

mknod $pipe_in p
mknod $pipe_out p

nc smtp.blabla.com 25 < $pipe_in > $pipe_out 2>&1 &

exec 4>$pipe_in
exec 5<$pipe_out

read input <&5
echo $input

echo QUIT >&4

read input <&5
echo $input

Igualmente hace esto en bash es horrible... tanto lenguaje de
programación para hacer ésto más lindo...

saludos!

-- 
Diego Woitasen

Responder a