Принудительное перенаправление вывода программы unix

Я новичок в написании сценариев оболочки, и я думаю, что это должно быть довольно просто. Во всяком случае, я не знаю, как принудительно перенаправить вывод программы на вход другой программы. Я знаю про трубу, где можно сделать

program1 | program2

Но в моем случае, я думаю, вывод программы1 уже перенаправлен куда-то еще (это длинный скрипт, который кто-то написал). Когда я пробовал в отдельной командной строке, результат, как и ожидалось, но когда я поместил его в сценарий program2 расстраивается из-за пропущенных параметров. Могу ли я как-то заставить это?

1 ответ

Решение

Боюсь, на это нет простого ответа. Прежде всего вы должны найти, куда program1 перенаправляет свой вывод. чтобы дать вам несколько советов, что искать, взгляните на это.

когда вы узнаете, пусть program1 печатает на стандартный вывод. таким образом, вывод программы1 будет передан на вход программы2.

как вы говорите "расстраивается из-за пропущенных параметров", это также может означать, что program2 не может прочитать всю информацию из stdin. когда вы используете выходные данные program1 в качестве параметров для program2, попробуйте xargs:

program1 | xargs program2
Другие вопросы по тегам