Pequeña duda con script

Buenas a todos.

No me gusta crear hilos para dudas "pequeñas" y por eso suelo evitarlo, pero como es un problema concreto voy a ver si alguien me echa una mano.
Estoy metido en un proyecto en el que tengo que recoger datos de una serie de nodos repartidos por una zona; el caso es que los datos que estos nodos se vuelcan en la salida estándar a pelo, como un chorizo de bytes, mi intención es que en pantalla se muestre directamente la información legible para el usuario, y la forma más fácil y directa que se me ha ocurrido es un pequeño script, redirigiendo la entrada del programa que muestra los datos a pelo al mío.

Lo que tengo:

#!/bin/bash

alta=`echo $1 | cut -d' ' -f9`
baja=`echo $1 | cut -d' ' -f10`
nodo=`echo $1 | cut -d' ' -f8`

dec=`echo $(( 16#$alta$baja ))`

temp=`echo $dec*0.0098-38.4 | bc`
echo Nodo: $nodo. Temperatura: $temp C


Lo que hace es irrelevante, el caso es que como veis este programa funciona llamándolo y pasándole un parámetro como entrada, y funciona.
Yo lo que quiero es que vaya transformando cada una de las entradas que le introduce el generador de la información.
He probado poniendo "programaGenerador | miPrograma" pero no funciona, da un error de broken pipe.
Decir que el programaGenerador va mandando datos sin parar con una cierta frecuencia, y lo único que hace el mío es eso, mostrarlos de otra forma.

A ver si alguien lo sabe :)
Prueba a crear un pipe con nombre (mkfifo) y redirigir la salida y la entrada de ambos ahí.
No entiendo muy bien el proposito del script, pero entiendo que quieres leer de stdin (entrada standard) una linea con valores separados por espacios, tal que:

echo "30 20 1" | script.sh


(siendo 30 temperatura alta, 20 baja y 1 el nodo)

#!/bin/bash

read stdin
alta=`echo $stdin | cut -d' ' -f1`
baja=`echo $stdin | cut -d' ' -f2`
nodo=`echo $stdin | cut -d' ' -f3`
echo "Alta: $alta, Baja: $baja, Nodo: $nodo"
Muchas gracias a los dos XD

aportela, me lo has solucionado, efectivamente lo que quería era leer la entrada stdin; bueno, realmente quería leer la salida de otra aplicación (ya que yo no escribo esos bytes, los va sacando otra aplicación, sería de la forma "programa | script.sh", en lugar de un echo), pero bastaba con poner read y ya utilizar la tubería, me faltaba ese read.

Los nombres de las variables no son muy aclaratorios XD; como curiosidad, "alta" es el byte de mayor peso de la temperatura, y "baja" el byte de menor peso. El script básicamente los junta y realiza un par de operaciones con bc para convertirla a centígrados, en cuanto al nodo es la dirección del cacharro que está tomando la temperatura (hay varios). Vamos, que el script básicamente convierte un chorizo de bytes del tipo "00 FF FF 00 02 02 3F 01 17 01" a algo entendible.

Un saludo y gracias de nuevo, asunto arreglado.
3 respuestas