Я хочу создать что-то похожее на файл (что можно читать как обычный файл), которое при каждом чтении будет получать вывод от команды.
Например, если я это сделаю echo $RANDOM > test
, то я могу позвонить cat test
, и он отобразит сгенерированное случайное число.
За исключением того, что мне это понадобится каждый раз, когда я вызываю cat test
(или читаю каким-либо другим способом) мою команду генератора ( echo $RANDOM
в моем примере, но на самом деле она сгенерирует больше данных — около 1 Кб).
Я думаю, лучшим вариантом будет создать какой-то специальный файл устройства / драйвер устройства? То, что мне нужно, действительно похоже на /dev/zero или /dev/random. Возможно ли создать его просто? Использование стандартной библиотеки gnu/sh было бы идеальным?
Заранее спасибо за любую подсказку!
решение1
Используйте функциональность именованных каналов:
mkfifo myfancypipe;
while true; do bash -c 'echo $RANDOM' > myfancypipe; done
Теперь перейдите к другому терминалу и каждый раз звоните:
cat myfancypipe
Вы получите информацию отecho $RANDOM