Описание тега san-jose
Для простых команд, перенаправление позиционирования является гибкой, так долго, как это на одной линии и перед любым ;
. Это все действует:
КОМАНДА1 арг <файл
<файл КОМАНДА1 арг
КОМАНДА1 <файл ARG
Вы найдете первая форма, как правило, желательно, стилистически говоря.
Для команд соединены трубой или состояние перенаправления явно должны быть на той же стороне, что соответствующая команда. Если первая команда должна получать входные данные, то вы хотите:
КОМАНДА1 <файл || команда2
Для команда2 получать входные данные:
КОМАНДА1 || команда2 <файл
В случае в то время как
, для
и другие блок-составные команды, необходимость поставить перенаправление в конце-это просто синтаксическая реальности.
<файл { КОМАНДА1 || команда2; } # ошибка
{ КОМАНДА1 || команда2; } <файл # хорошо
Составная команда действует как единый команду в этом контексте и поэтому перенаправление ввода не можете выбрать команда2 команда1 и исключить, например.
Конечно, трубы тоже иногда вариант, так что второй пример выше подобное:
файл Cat | { КОМАНДА1 || команда2; }
И в случае вашего цикла while:
кошка файл myfile | во время чтения; делать ...
Я использовал вход во всех этих примерах, но это же касается и вывода. Где нужно обратить внимание при использовании обоих входов и выходов или другие множественные перенаправления конфигураций. Редиректы обрабатываются слева направо.
Вот еще кое-что почитать: