LINUX.ORG.RU

История изменений

Исправление AKonia, (текущая версия) :

Короче последний пример.

  1. Создаёшь в папке именованый канал
mkfifo my_pipe
  1. В этой же папке например создаёшь сценарий writer.sh
for i in 1 2 3 4
do
    sleep 1
    echo $((1 + $RANDOM % 10))
done

и сценарий reader.sh:

while read line
do
    echo $line
done
  1. В одном терминале запускаем reader.sh
bash ./reader.sh < my_pipe
  1. В другом терминале запускаем сценарий writer.sh
bash ./writer.sh > my_pipe

В качестве результата наблюдаем примерно то, что вы и заказывали - читатель запускается и виснет в ожидании ввода писателя и как только поступает ввод, она его шаг за шагом читает и так сколько угодно долго. Если это не то что ты спрашиваешь, то рекомендую тебе прежде всего научится изъяснять свои мысли, т.к. судя по вопросу - это то, но если это то и ты не смог заставить работать готовое решение, то тут я ничем помочь увы не могу. Своё доделываешь по аналогии.

Исправление AKonia, :

Короче последний пример.

  1. Создаёшь в папке именованый канал
mkfifo my_pipe
  1. В этой же папке например создаёшь сценарий writer.sh
for i in 1 2 3 4
do
    sleep 1
    echo $((1 + $RANDOM % 10))
done

и сценарий reader.sh:

while read line
do
    echo $line
done
  1. В одном терминале запускаем reader.sh
bash ./reader.sh < my_pipe
  1. В другом терминале запускаем сценарий writer.sh
bash ./writer.sh > my_pipe

В качестве результата наблюдаем примерно то, что вы и заказывали - программа запускается и виснет в ожидании ввода, как только поступает ввод, она его шаг за шагом читает и так сколько угодно долго. Если это не то что ты спрашиваешь, то рекомендую тебе прежде всего научится изъяснять свои мысли, т.к. судя по вопросу - это то, но если это то и ты не смог заставить работать готовое решение, то тут я ничем помочь увы не могу. Своё доделываешь по аналогии.

Исправление AKonia, :

Короче последний пример.

  1. Создаёшь в папке именованый канал
mkfifo my_pipe
  1. В этой же папке например создаёшь сценарий writer.sh
for i in 1 2 3 4
do
    sleep 1
    echo $((1 + $RANDOM % 10))
done

и сценарий reader.sh:

while read line
do
    echo $line
done
  1. В одном терминале запускаем reader.sh
bash ./reader.sh < my_pipe
  1. В другом терминале запускаем сценарий writer.sh
bash ./writer.sh > my_pipe

В качестве результата наблюдаем примерно то, что вы и заказывали - программа запускается и виснет в ожидании ввода, как только поступает ввод, она его шаг за шагом читает и так сколько угодно долго. Если это не то что ты спрашиваешь, то рекомендую тебе прежде всего научится изъяснять свои мысли, т.к. судя по вопросу - это то, но если это то и ты не смог заставить работать готовое решение, то тут я ничем помочь увы не могу. Своё доделываешь по аналогии.

Исправление AKonia, :

Короче последний пример.

  1. Создаёшь в папке именованый канал
mkfifo my_pipe
  1. В этой же папке например создаёшь сценарий writer.sh
for i in 1 2 3 4
do
    sleep 1
    echo $((1 + $RANDOM % 10))
done

и сценарий reader.sh:

while read line
do
    echo $line
done
  1. В одном терминале запускаем reader.sh
bash ./reader.sh < my_pipe
  1. В другом терминале запускаем сценарий writer.sh
bash ./writer.sh > my_pipe

В качестве результата наблюдаем примерно то, что вы и заказывали - программа запускается и виснет в ожидании ввода, как только поступает ввод, она его шаг за шагом читает и так сколько угодно долго. Если это не то что ты спрашиваешь, то рекомендую тебе прежде всего научится изъяснять свои мысли, т.к. судя по вопросу - это то, но если это то и ты не смог заставить работать готовое решение, то тут я ничем помочь не могу.

Исходная версия AKonia, :

Короче последний пример

  1. Создаёшь в папке именованый канал
mkfifo my_pipe
  1. В этой же папке например создаёшь сценарий writer.sh
for i in 1 2 3 4
do
    sleep 1
    echo $((1 + $RANDOM % 10))
done

и сценарий reader.sh:

while read line
do
    echo $line
done
  1. В одном терминале запускаем reader.sh
bash ./reader.sh < my_pipe
  1. В другом терминале запускаем сценарий writer.sh
bash ./writer.sh > my_pipe

В качестве результата наблюдаем примерно то, что вы и заказывали - программа запускается и виснет в ожидании ввода, как только поступает ввод, она его шаг за шагом читает и так сколько угодно долго. Если это не то что ты спрашиваешь, то рекомендую тебе прежде всего научится изъяснять свои мысли, т.к. судя по вопросу - это то, но если это то и ты не смог заставить работать готовое решение, то тут я ничем помочь не могу.