Quero criar algo semelhante a um arquivo (que possa ser lido como um arquivo comum), que sempre que for lido, obtenha a saída de um comando.
Por exemplo, se eu fizer isso echo $RANDOM > test
, posso ligar cat test
e ele exibirá o número aleatório gerado.
Exceto que eu precisaria que toda vez que eu chamasse cat test
(ou lesse de qualquer outra forma), meu comando gerador fosse chamado ( echo $RANDOM
no meu exemplo, mas na verdade ele gerará mais dados - cerca de 1kb).
Acho que a melhor aposta seria criar algum tipo de arquivo/driver de dispositivo especial de dispositivo? O que eu preciso é realmente semelhante a/dev/zero ou/dev/random. É possível criá-lo de forma simples? Usar a biblioteca gnu/sh padrão seria o ideal?
Agradecemos antecipadamente por qualquer dica!
Responder1
Use a funcionalidade de pipes nomeados:
mkfifo myfancypipe;
while true; do bash -c 'echo $RANDOM' > myfancypipe; done
Agora vá para outro terminal e cada vez que você ligar:
cat myfancypipe
Você obterá informações deecho $RANDOM