Usando la salida de un programa como el contenido de un archivo, dinámicamente

0

En Linux, me gustaría crear un archivo donde el contenido del archivo sea generado dinámicamente por la salida de un programa.

Los ejemplos que ya existen son / dev / random / dev / urandom, / dev / zero, etc.

Me gustaría crear un archivo como /home/sam/currentdate.txt donde los contenidos del archivo son el resultado de ejecutar un comando (como date, y leería:

[sam@myserver ~]$ cat ./currentdate.txt
Wed Dec  2 12:12:09 PST 2015
[sam@myserver ~]$ 

Para mi caso de uso, necesito rastrear la salida de ciertos programas por otro programa que no puede leer el contenido de la salida de un programa, sino el contenido de un archivo. Puedo guardar el contenido de la salida a través de un script usando date> filename.txt pero eso requiere guardar primero la salida en el disco, lo que será ineficiente en mi caso de uso.

usuario1955162
fuente

Respuestas:

2

Una pipa con nombre puede ser tu amigo. Cree una tubería con nombre y haga que sus procesos escriban en ella. Su proceso de lectura puede leerlo.

usuario619714
fuente
1

Esto parece una instancia del problema XY ; ¿Qué es exactamente lo que estás tratando de lograr?

Si desea leer la salida de un programa y usarla en su script, puede llamar al programa de destino y asignar su salida a una variable: https://stackoverflow.com/questions/4651437/how-to-set-a -bash-variable-equal-to-the-output-from-a-command .

Si, en cambio, realmente desea que el programa se ejecute de forma asincrónica y almacene su salida donde su script pueda leerlo, puede usar un archivo de disco (que realmente no tiene tanta sobrecarga como cree), o una tubería con nombre, como Iain sugirió.

Massimo
fuente
Estoy tratando de escribir instantáneas incrementales de zfssend en cinta usando un software de respaldo que solo hará un seguimiento de los cambios en los archivos. No quiero anotar las instantáneas incrementales delta en cinta, por lo que me gustaría crear un archivo que contenga el comando que lee el archivo delta. Ese es mi caso de uso. Investigaré la solución de tubería con nombre recomendada por lain.
user1955162