Here-Document - це різновид перенаправлення оболонки, тому оболонка буде виконувати це як звичайне перенаправлення, від початку до кінця (або зліва направо, або порядку появи). Це визначено POSIX:
Якщо командою вказано більше одного оператора перенаправлення, порядок оцінки працює від початку до кінця.
У вашій команді catбуде виконуватися > confспочатку, відкривати і усікати confфайл для запису, а потім читати дані з Here-Document.
Використовуючи strace, ви можете перевірити це:
$ strace -f -e trace=open,dup2 sh -c 'cat > conf << EOF
var1="cat"
var2="dog"
var3="hamster"
EOF
'
...
open("conf", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
dup2(3, 1) = 1
dup2(3, 0) = 0
...
cat > file_name << blahє те , що перед виконаннямcatна стандартний висновок з оболонки пов'язаний з файл з ім'ям ,file_nameа потім стандартний ввід оболонки підключається до тут-документ ?