पुनर्निर्देशन ऑपरेटर "<<" और "<< -" दोनों एक शेल इनपुट फ़ाइल में निहित लाइनों के पुनर्निर्देशन की अनुमति देते हैं, जिसे "कमांड-दस्तावेज़" के रूप में जाना जाता है, एक कमांड के इनपुट में।
यहां दस्तावेज़ को एक एकल शब्द के रूप में माना जाएगा जो अगले के बाद शुरू होता है और तब तक जारी रहता है जब तक कि कोई रेखा नहीं होती है जिसमें केवल सीमांकक और ए होता है, जिसके बीच कोई वर्ण नहीं होता है। फिर अगला यहाँ-दस्तावेज़ शुरू होता है, अगर वहाँ एक है। प्रारूप इस प्रकार है:
[n]<<word
here-document
delimiter
जहाँ वैकल्पिक n फ़ाइल डिस्क्रिप्टर संख्या का प्रतिनिधित्व करता है। यदि संख्या को छोड़ दिया जाता है, तो यहां दस्तावेज़ मानक इनपुट (फाइल डिस्क्रिप्टर 0) को संदर्भित करता है।
यदि शब्द के किसी भी वर्ण को उद्धृत किया जाता है, तो शब्द पर उद्धरण हटाने का प्रदर्शन करके परिसीमन का गठन किया जाएगा, और यहां-दस्तावेज़ लाइनों का विस्तार नहीं किया जाएगा। अन्यथा, परिसीमन शब्द ही होगा।
यदि शब्द में कोई वर्ण उद्धृत नहीं किया गया है, तो यहां दस्तावेज़ की सभी लाइनें पैरामीटर विस्तार, कमांड प्रतिस्थापन और अंकगणितीय विस्तार के लिए विस्तारित की जाएंगी। इस मामले में, इनपुट में डबल-उद्धरण (डबल-उद्धरण देखें) के रूप में व्यवहार किया जाता है। हालाँकि, दोहरे-उद्धरण वर्ण ('' '') को यहाँ-दस्तावेज़ में विशेष रूप से नहीं माना जाएगा, सिवाय इसके कि जब दोहरे-उद्धरण "$ ()", "` `", या "$ {}" के भीतर दिखाई दे।
यदि पुनर्निर्देशन प्रतीक "<< -" है, तो सभी प्रमुख <tab>
पात्रों को इनपुट लाइनों और अनुगामी परिसीमाक रेखा से छीन लिया जाएगा। यदि एक से अधिक "<<" या "<< -" ऑपरेटर को एक लाइन पर निर्दिष्ट किया जाता है, तो यहां पहले ऑपरेटर से जुड़े दस्तावेज़ को पहले आवेदन द्वारा आपूर्ति की जाएगी और पहले शेल द्वारा पढ़ा जाएगा।
जब किसी टर्मिनल-डिवाइस से यहां-डॉक्यूमेंट को पढ़ा जाता है और शेल इंटरएक्टिव होता है, तो यह वेरिएबल PS2 की सामग्री को शेल वेरिएबल्स में बताए गए प्रोसेस के अनुसार लिखेगा, जो कि इनपुट की प्रत्येक लाइन को पढ़ने से पहले स्टैण्डर्ड एरर में तब तक स्टैंडर्ड एरर हो जाता है, जब तक कि सीमांकक को पहचान नहीं लिया गया हो।
cat
। प्रयास करेंpsql ... << EOF ...
भी देखें "यहाँ तार"। mywiki.wooledge.org/BashGuide/InputAndOutput?#Here_Strings