Назад | Перейти на главную страницу

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

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

program1 | program2

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

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

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

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

program1 | xargs program2