Here-Document bir tür kabuk yeniden yönlendirmesidir, bu nedenle kabuk, baştan sona (veya soldan sağa veya görünüm sırasına) normal yönlendirme olarak gerçekleştirir. Bu POSIX tarafından tanımlanmıştır:
Bir komutla birden fazla yönlendirme operatörü belirtilirse, değerlendirme sırası baştan sona doğrudur.
Emriniz olarak, cat
yapacak > conf
ilk açık ve truncate conf
verileri daha sonra, yazma okuma için dosya Here-Document
.
Kullanarak strace
, şunları doğrulayabilirsiniz:
$ 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
olduğunu çalıştırmadan önce olduğu stdout'u adlı dosyaya bağlı olan kabuğun sonra ve stdin'i kabuğun bağlanır burada-doc ?cat
file_name