История изменений
Исправление Novascriptum, (текущая версия) :
Так, я, похоже, сам немного продвинулся в этом вопросе. Если в bash-скрипте я запускаю php-субпроцесс вот так:
echo "111" | php read.php &
(здесь, похоже, и происходит инициализация пайпа fd/0), то всё начинает работать более похоже на то, как мне надо:
$ sh box.sh
$ php started as 4983
read stdin part: 111
test1
test2
read stdin part:
php finished
Но остаётся непонятно:
- Почему терминал остаётся «висеть», как будто ждёт какого-то ввода: https://www.screencast.com/t/NkALLTyGkpC
- Почему строка «read stdin part» повторяется дважды, и второй раз - значением прочитанной порции STDIN является пустая строка (которой не было в переданных данных).
Исправление Novascriptum, :
Так, я, похоже, сам немного продвинулся в этом вопросе. Если в bash-скрипте я запускаю php-субпроцесс вот так:
echo "111" | php read.php &
(здесь, похоже, и происходит инициализация пайпа fd/0), то всё начинает работать более похоже на то, как мне надо:
$ sh box.sh
$ php started as 4983
read stdin part: 111
test1
test2
read stdin part:
php finished
Но остаётся непонятно, почему терминал остаётся «висеть», как будто ждёт какого-то ввода: https://www.screencast.com/t/NkALLTyGkpC
Исходная версия Novascriptum, :
Так, я, похоже, сам немного продвинулся в этом вопросе. Если в bash-скрипте я запускаю php-субпроцесс вот так:
echo "111" | php read2.php &
(здесь, похоже, и происходит инициализация пайпа fd/0), то всё начинает работать более похоже на то, как мне надо:
$ sh box2.sh
$ php started as 4983
read stdin part: 111
test1
test2
read stdin part:
php finished
Но остаётся непонятно, почему терминал остаётся «висеть», как будто ждёт какого-то ввода: https://www.screencast.com/t/NkALLTyGkpC