दिलचस्प पोस्ट
प्लॉट 4 घटता एक ही साजिश में 3 y- अक्षों के साथ लॉगिंग ढांचा असंगति डबल बनाम बिगडिस्किम? एंड्रॉइड के लिए जेडीबीसी बनाम वेब सेवा ऐप स्टोर से आईओएस एप कैसे हटाया जाए एक जेफ्राम में जेपीएनएल के साथ जेपीएनएल की जगह अन्य कंसोल ऐप से कंसोल एप्लिकेशन चलाएं पेंशन के लिए सेलेनियम के साथ पेज लोड होने तक कैसे इंतजार करना है? खूबसूरत सूप दृश्यमान वेबपेज पाठ पकड़ो तत्व की आईडी प्राप्त करना जो एक घटना को निकाल दिया जावास्क्रिप्ट का उपयोग करने के लिए ब्लॉब प्रदर्शित करना आप जेएसपी में क्लासेस कैसे आयात करते हैं? एक घंटा तत्व का रंग बदलना कैसे जावा क्लास को गतिशील रूप से एंड्रॉइड / डेल्विक लोड करना है? MySQL पीडीओ कैसे बाँध की तरह

यहां दस्तावेज़ 'फ़ाइल का अनपेक्षित अंत' त्रुटि देता है

मुझे टर्मिनल से एक ईमेल भेजने की मेरी स्क्रिप्ट की आवश्यकता है मैंने यहां और कई अन्य स्थानों पर ऑनलाइन क्या देखा है इसके आधार पर, मैंने इसे इस तरह स्वरूपित किया:

/var/mail -s "$SUBJECT" "$EMAIL" << EOF Here's a line of my message! And here's another line! Last line of the message here! EOF 

हालांकि, जब मैं इसे चलाता हूं मुझे यह चेतावनी मिलती है:

 myfile.sh: line x: warning: here-document at line y delimited by end-of-file (wanted 'EOF') myfile.sh: line x+1: syntax error: unexpected end of file 

… जहां लाइन x प्रोग्राम में कोड की अंतिम लिखित पंक्ति है, और रेखा y उस में /var/mail साथ की रेखा है मैंने अन्य चीज़ों ( ENDOFMESSAGE , FINISH , आदि) के साथ EOF को बदलने की कोशिश की लेकिन कोई लाभ नहीं हुआ। लगभग हर चीज जो मैंने ऑनलाइन पाया है उसने इस तरह से किया है, और मैं वास्तव में बैश में नया हूँ, इसलिए मेरे लिए यह मुश्किल लग रहा है कि मैं इसे खुद ही समझूं। क्या कोई किसी भी मदद की पेशकश कर सकता है?

वेब के समाधान से एकत्रित समाधान "यहां दस्तावेज़ 'फ़ाइल का अनपेक्षित अंत' त्रुटि देता है"

EOF टोकन लाइन की शुरुआत में होना चाहिए, इसके साथ कोड के ब्लॉक के साथ इसे इंडेंट नहीं किया जा सकता।

यदि आप लिखते हैं तो <<-EOF आप इसे इंडेंट कर सकते हैं, लेकिन इसे टैब अक्षर के साथ इंडेंट किया जाना चाहिए, रिक्त स्थान नहीं। इसलिए यह अभी भी कोड के ब्लॉक के साथ समाप्त नहीं हो सकता है

यह भी सुनिश्चित करें कि आपके पास लाइन पर EOF टोकन के बाद कोई श्वेत स्थान नहीं है।

यहां शुरू होने वाली या समाप्त होने वाली रेखा में शायद कुछ गैर-प्रिंट करने योग्य या सफेद स्थान वर्ण (उदाहरण के लिए, गाड़ी वापसी) का अर्थ है कि दूसरा "ईओएफ" पहले से मेल नहीं खाता है, और यहाँ यहां-डॉक्ट को समाप्त नहीं करता है यह होना चाहिए। यह एक बहुत ही सामान्य त्रुटि है, और केवल एक पाठ संपादक के साथ पता लगाना मुश्किल है। आप गैर-प्रिंट करने योग्य पात्रों को cat साथ उदाहरण के लिए दृश्यमान बना सकते हैं:

 cat -A myfile.sh 

एक बार जब आप cat -A से आउटपुट देखते हैं तो समाधान स्पष्ट होगा: अपमानजनक वर्ण हटा दें।

कृपया ईओएफ से पहले आने वाले रिक्त स्थान को निकालने का प्रयास करें: –

 /var/mail -s "$SUBJECT" "$EMAIL" <<-EOF 

पहचान के लिए <spaces> की बजाय <tab> का उपयोग करना और << – EOF ठीक काम करता है

"-" <tabs> को हटा देता है, <spaces> , लेकिन कम से कम यह काम करता है

बारमर और जोनी द्वारा उल्लिखित अन्य उत्तरों के साथ, मैंने देखा है कि मुझे कभी-कभी मेरे ईओएफ के बाद और <<-EOF का उपयोग करते समय रिक्त पंक्ति को छोड़ना पड़ता है।