Вот упрощенный пример сценария, который я пишу (не работает как есть).Сценарий Bash не будет перенаправлять ввод в подпроцесс
Я хочу направить STDOUT из моего сценария в STDIN подпроцесса.
В приведенном ниже примере я пишу 'test' для STDOUT и хочу, чтобы он перешел к подпроцессу, который в конечном итоге записывает его в файл.
#!/bin/bash
exec 4<&1
(cat >/tmp/output)& <&4
while true; do echo test; sleep 1; done
Я не уверен, что вы понимаете, что вы ожидаете от своего сценария. Вы хотите, чтобы выход «echo test» был направлен в STDIN другого процесса, не так ли? – jopasserat
Да, это то, что я пытаюсь сделать, а coproc - идеальное решение. Основная проблема, которую я абстрагировал из этого вопроса, заключается в том, что в этом случае сопроцессом является netcat, и мне нужно выполнить его как подпроцесс, чтобы я мог отслеживать, когда он выйдет (когда соединение сокета завершится неудачно из-за сетевой ошибки или перезагрузки сервера) и перезапустите соединение или установите флаг для вывода буфера до тех пор, пока соединение не будет восстановлено. –