यहां-दस्तावेज़ एक प्रकार का शेल पुनर्निर्देशन है, इसलिए शेल इसे सामान्य पुनर्निर्देशन के रूप में शुरू से अंत तक (या बाएं से दाएं, या उपस्थिति के क्रम) के रूप में प्रदर्शन करेगा। यह POSIX द्वारा परिभाषित है:
यदि एक से अधिक पुनर्निर्देशन ऑपरेटर एक कमांड के साथ निर्दिष्ट किया जाता है, तो मूल्यांकन का क्रम शुरू से अंत तक है।
आपके आदेश में, लिखने के लिए पहले, खुली और ट्रंकट फ़ाइल का catप्रदर्शन करेंगे , फिर डेटा पढ़ना ।> confconfHere-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और फिर शेल का स्टैडेन यहाँ से जुड़ा है ?