Вопрос
Поэтому мой вопрос заключается в том, могу ли я каким-либо образом отправить данные в мою программу, а затем отправить те же данные и их результат в другую программу без необходимости создания временного файла (в моем случае ouputdata.txt). Предпочтительно использовать linux pipe / bash.
В настоящее время я делаю следующее:
cat inputdata.txt | ./MyProg > outputdata.txt р>
cat inputdata.txt outputdata.txt | ./MyProg2 р>
Решение
Вариант 1 - исправьте MyProg
, чтобы записать объединенный вывод из ввода и его собственный вывод. Тогда вы можете сделать это.
./MyProg <inputdata.txt | ./MyProg2
Вариант 2 - Если вы не можете исправить MyProg
для записи как ввода, так и вывода, вам нужно объединить.
./MyProg <inputdata.txt | cat inputdata.txt - | ./MyProg2
Другие советы
Вот еще один способ, который можно расширить, чтобы соединить выходные данные двух программ:
( Prog1; Prog2; Prog3; ... ) | ProgN
По крайней мере, это работает в Bash.