я делаю оболочку, которая будет перенаправлять < и> Linux говорит Перенаправление обрабатывается слева направостаршинства редиректа> и <
, но если это так, то следующее не будет работать
1) тройник newOutputFile1 < existingInputFile> newOutputFile2
по странице человека вход первым перезаписан, то выход будет перезаписан, если это правда, то к тому времени, newOutputFile2 получает набор на стандартный тройник бы уже началось, а затем newOutputFile2 было бы Онг.
это то, что я понимаю, что он делает
2) Тройник newOutputFile1 < existingInputFile> newOutputFile2
первый установит newOutputfile2 как стандартный вывод, а затем установить в качестве стандартного ввода содержимого existingInputFile.
, но если это правда, то
3) тройник newOutputFile1> newOutputFile2 < existingInputFile
будет выполнять обратное и ломать вещи.
поэтому, когда есть и < и> он только принимает первый набор stdout, а затем устанавливает stdin?
«к тому времени, когда' newOutputFile2' получит значение 'stdout',' tee' уже запустился. Нет, есть твоя ошибка. Вилка предотвращает испорчение потоков основной оболочки, затем все перенаправления выполняются в порядке слева направо ('freopen'), и последним шагом является использование' exec' для замены дочернего элемента fork исполняемый файл 'tee'. –