जवाबों:
<<<शुरू होता है एक "यहाँ स्ट्रिंग": स्ट्रिंग विस्तार किया है और कार्यक्रम के stdin को खिलाया जाता है। (आपके मामले में, बहुत विस्तार नहीं हो रहा है।) यह इसके बराबर है:
echo ddd | md5sum
दूसरी ओर, <<यहां एक दस्तावेज़ शुरू करता है। मार्कर वाले एक तक की सभी निम्न पंक्तियों dddमें प्रोग्राम का इनपुट शामिल होगा। (आपको एक मार्कर का उपयोग करना चाहिए जो आपके डेटा में दिखाई देने की संभावना नहीं है।) आप इस तरह से ऊपर जैसा प्रभाव प्राप्त कर सकते हैं:
md5sum <<END
ddd
END
के बीच एक अंतर है <<ENDऔर <<'END': उद्धरण के बिना, किसी भी चर, भागने के अनुक्रम आदि यहां दस्तावेज़ में हमेशा की तरह विस्तारित होंगे।
<<<एक स्ट्रिंग का परिचय देता है : <<<कमांड के इनपुट के रूप में पास होने के बाद स्ट्रिंग । यह बायरन राक्गितिस के बंदरगाह rc(एक योजना 9 शेल) के यूनिक्स में उत्पन्न होता है, और यह zsh, ksh93 और bash में भी मौजूद है।
<<यहां एक दस्तावेज पेश किया गया है : शेल स्क्रिप्ट की बाद की लाइनें कमांड के इनपुट के रूप में पारित की जाती हैं, और स्ट्रिंग के बाद <<एक टर्मिनेटर है। यहाँ दस्तावेज़ सभी बॉर्न-शैली के गोले (बॉर्न, पोसिक्स, ऐश, बाश, क्श, ज़श, ...), सी-स्टाइल के गोले (csh, tcsh) और प्लान 9 गोले (आरसी, es) में काम करते हैं।
<<<नहीं है ksh, पथ है rc-> zsh-> ksh93-> bash( kshरिलीज नोट एक बार से सुविधा उधार लेने के लिए स्वीकार करते हैं zsh)। शैली के गोले <<में भी काम करता हैrc
rcऔर zsh <<<हालांकि rcइसमें एक अनुगामी न्यूलाइन वर्ण शामिल नहीं है और यह एक अस्थायी फ़ाइल का उपयोग नहीं करता है (एक पाइप का उपयोग करता है और एक अतिरिक्त प्रक्रिया इसे कम से कम लिनक्स में पोर्ट में खिलाती है)।
<<<यूनिक्स बंदरगाह से आता है जैसा कि rcयह नहीं लगता है कि यह प्लान 9 के rcपास है।
rc,<<<(जैसे<<) एक अस्थायी फ़ाइल इसलिए आदेशों द्वारा इस्तेमाल किया जा सकता का उपयोग करता हैlseekउनके stdin।