Quiero crear algo parecido a un archivo (que pueda leerse como un archivo común), que cada vez que se lee, obtenga su salida de un comando.
Por ejemplo, si lo hago echo $RANDOM > test
, puedo llamar cat test
y se mostrará el número aleatorio generado.
Excepto que necesitaría que cada vez que llame cat test
(o lo lea de otra manera), se llame al comando de mi generador ( echo $RANDOM
en mi ejemplo, pero en realidad generará más datos, alrededor de 1 kb).
Creo que la mejor opción sería crear algún tipo de archivo/controlador de dispositivo especial para el dispositivo. De hecho, lo que necesito es similar a /dev/zero o /dev/random. ¿Es posible crearlo de forma sencilla? ¿Usar la biblioteca estándar gnu/sh sería ideal?
¡Gracias de antemano por cualquier pista!
Respuesta1
Utilice la funcionalidad de canalizaciones con nombre:
mkfifo myfancypipe;
while true; do bash -c 'echo $RANDOM' > myfancypipe; done
Ahora ve a otra terminal y cada vez llamarás:
cat myfancypipe
Obtendrás información deecho $RANDOM