Я пытаюсь понять, как оболочка немного лучше обрабатывает перенаправление. Насколько я понимаю, синтаксис «n <» означает перенаправление файлового дескриптора, заданного «n». </p>
Команда, которую я пытаюсь понять, это
echo "first" > test; echo "second" 1< test
Я думал, что произойдет, что файл "test" будет перезаписан текстом "first"; затем, когда вторая команда будет выполнена, 1 - т.е. stdout - будет перенаправлен для проверки.
На самом деле происходит следующее:
- Ничего не пишет в терминал, поэтому stdout был перенаправлен куда-то ;
- Когда я открываю «test», написано «первый», а не «второй», поэтому я не перезаписывал «test».
Может кто-нибудь объяснить, что происходит? Это то, что stdout перенаправляется для тестирования, но в режиме «только для чтения» или что-то в этом роде? Я не могу найти ссылки на использование 1<
в сценарии в другом месте (поскольку, по общему признанию, это кажется странным, что нужно сделать).