[Programación]Detectar stdin vacio!

Horacio Castellini horacio9573 en yahoo.com.ar
Vie Ago 20 11:34:09 ART 2010


> Bueno, quedo así, pero no me gusta porque debo crear un
> archivo y no queda bien.
> Me gustaria que se resuelva todo en una sola linea o
> manipulando os descriptores;
> Cosa que no pude lograr ya que /dev/fd/6 ni existia, o no
> tenia permisos para
> manipularlo... no se.
> 
> [vacio.sh]
> ========================
> #!/bin/bash
> cat <&0 > /tmp/x.tmp   # aca tuve
> que usar un archivo ,
>                
>        # no podia duplicar el
> descripto de entrada!
>                
>        # tal vez x problema de
> permisos
> if [ $(wc -c < /tmp/x.tmp) != 0 ]; then
>     cat /tmp/x.tmp
> else
>     echo "No hay datos para imprimir."
> fi
> =========================
> 
> 

para leer el STDIN en bash se usa "read" acá hay un ejemplo...

 #!/bin/bash
 echo Por favor, meta su nombre y apellido
 read FN LN
 echo ``Hi! $LN, $FN !''

El problema es que read es bloqueante y la longitud de las variables bash está muy limitada... por eso te sugerí el "wc" a lo mejor existe algo mejor pero lo desconozco... 





      


Más información sobre la lista de distribución Programacion