Как определить выходной каталог, в который будет развернуто связанное опубликованное приложение.NET Core SingleFile?

Вы делаете это именно так, как показали:

somecommand | tee >(othercommand)

Вывод somecommandбудет записан на вход othercommandи на стандартный вывод.

Проблема с подстановкой вашего процесса echo 'bar'заключается в том, что он не заботится о входных данных, поступающих через teeиз echo 'foo', поэтому он просто выводит barкак можно быстрее и завершается. Затем утилита teeпытается выполнить запись в него, но терпит неудачу и, следовательно, прекращает (получение сигнала PIPE)перед записью строки в стандартный вывод. Или у teeможет быть время для записи данных в процесс подстановки, и в этом случае и bar, и fooбудут напечатаны на стандартном выводе, это не детерминировано.

Нужно убедиться, что команда в процессе подстановки действительно считывает отправленные ей данные (иначе какой смысл отправлять ей данные?)Как предлагает дядя Билли в комментариях , это легко организовать в вашем примере, позволив процессу подстановки просто использоватьcat >/dev/null(при условии, что вас не интересуют данные, поступающие изtee):

echo 'foo' | tee >(cat >/dev/null; echo 'bar')

или

echo 'foo' | tee >(echo 'bar'; cat >/dev/null)

(эти два варианта будут различаться только порядком окончательного вывода двух строк)

0
12.11.2020, 14:52
0 ответов

Теги

Похожие вопросы