यहां-दस्तावेज़ एक प्रकार का शेल पुनर्निर्देशन है, इसलिए शेल इसे सामान्य पुनर्निर्देशन के रूप में शुरू से अंत तक (या बाएं से दाएं, या उपस्थिति के क्रम) के रूप में प्रदर्शन करेगा। यह 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
और फिर शेल का स्टैडेन यहाँ से जुड़ा है ?