Ви можете шукати названу трубу .
mkfifo f
{
echo 'V cebqhpr bhgchg.'
sleep 2
echo 'Urer vf zber bhgchg.'
} >f
rot13 < f
Запис на трубу не запускає програму прослуховування. Якщо ви хочете обробити вхід у циклі, вам потрібно тримати програму прослуховування.
while true; do rot13 <f >decoded-output-$(date +%s.%N); done
Зверніть увагу, що всі дані, записані в трубу, об'єднані, навіть якщо є кілька записів процесів. Якщо читання декількох процесів, дані отримує лише один. Тому труба може бути непридатною для одночасних ситуацій.
Іменований сокет може працювати з одночасними з'єднаннями, але це виходить за рамки можливостей для базових сценаріїв оболонки.
На самому складному кінці шкали знаходяться призначені для користувача файлові системи , яка дозволяє проектувати і монтувати файлову систему , де кожен open
, write
і т.д., викликає відповідну функцію в режимі. Мінімальна інвестиція - це десятки рядків нетривіального кодування, наприклад в Python . Якщо ви хочете виконувати команди лише під час читання файлів, ви можете використовувати scriptfs або fuseflt .