Di sini-Dokumen adalah semacam pengalihan shell, sehingga shell akan melakukan pengalihan seperti biasa, dari awal hingga akhir (atau dari kiri ke kanan, atau urutan penampilan). Ini ditentukan oleh POSIX:
Jika lebih dari satu operator pengalihan ditentukan dengan perintah, urutan evaluasi adalah dari awal hingga akhir.
Pada perintah Anda, catakan melakukan > confpertama, membuka dan memotong conffile untuk menulis, kemudian membaca data dari Here-Document.
Menggunakan strace, Anda dapat memverifikasinya:
$ 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 << blahini bahwa sebelum mengeksekusicatpara stdout dari shell terhubung ke file bernamafile_namedan kemudian stdin dari shell terhubung ke sini-doc ?