Привет! Встретился с реализацией вот такого скрипта на bash, почти разобрался с ним, только не могу понять как в этом случае работает файловый дескриптор. Этот скрипт берет строчки из файла 123 и для каждой из них выполняет отдельно код в конструкции if fi.
Как получается так, что мы уже обращаемся к нему в 3ей строчке кода, но создаем его только в 7ой? Почему он создается именно в строке с «done», а не до цикла while?
#!/bin/bash
echo start
while read -ru "$fd_name" line; do
if [[ -n \"$line\" ]]; then
echo -n \"$line: \"
fi
done {fd_name}<<<"$(cat 123)"
Нигде не видел чтобы в описании работы while писалось о том, что «done» может как-то с чем-то взаимодействовать