[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