फिक्स: अप्रत्याशित टोकन के पास सिंटैक्स त्रुटि `(Error



समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

त्रुटि संदेश अप्रत्याशित टोकन के पास सिंटैक्स त्रुटि `(to एक यूनिक्स-प्रकार के वातावरण में, सिगविन और विंडोज में कमांड-लाइन इंटरफ़ेस में होता है। जब आप शेल स्क्रिप्ट को चलाने की कोशिश करेंगे, जो कि पुराने डॉस / विंडोज या मैक सिस्टम में एडिट या क्रिएट की गई थी, तो यह त्रुटि संभवतः शुरू हो जाएगी।



अप्रत्याशित टोकन के पास सिंटैक्स त्रुटि `(

अप्रत्याशित टोकन के पास सिंटैक्स त्रुटि `(unexpected



यह त्रुटि संदेश तब भी सामने आता है जब आप लिनक्स कमांड लाइन में रोजमर्रा के कार्यों के लिए कमांड दर्ज कर रहे होते हैं जैसे कि मैन्युअल रूप से फाइल कॉपी करना आदि। यह त्रुटि संदेश होने का मुख्य कारण या तो किसी सिस्टम के कमांड की व्याख्या करने में ओएस के खराब सिंटैक्स या समस्या के कारण होता है / खोल।



अप्रत्याशित टोकन के पास सिंटैक्स त्रुटि का क्या कारण है `(Error?

इस त्रुटि संदेश के कारण बहुत विविध हैं और एक लेख में सूचीबद्ध नहीं किए जा सकते क्योंकि कमांड निष्पादित करते समय वाक्यविन्यास की हजारों संभावनाएं गलत हैं। इस त्रुटि के मुख्य कारण हैं:

  • खराब सिंटेक्स किसी भी प्लेटफॉर्म में किसी भी कमांड को निष्पादित करते समय या तो आप सही ढंग से कमांड का उपयोग नहीं कर रहे हैं या गलत सिंटैक्स में प्रवेश कर चुके हैं।
  • खोल नहीं है संगत यूनिक्स / डॉस सिस्टम के बीच।
  • बैश शेल स्क्रिप्ट को चलाने के मुद्दे हैं एक अन्य स्रोत

इस लेख में, हम मानते हैं कि आप कोडिंग की मूल बातें जानते हैं और यह अंदाजा लगा सकते हैं कि आप क्या कर रहे हैं। यदि आप एक शुरुआत कर रहे हैं, तो यह सबसे अच्छा है कि आप उस भाषा / कमांड के गहन ट्यूटोरियल का अनुसरण करें जिसे आप निष्पादित करने का प्रयास कर रहे हैं। आपने शायद कुछ सिंटेक्स की गलती की है।

समाधान 1: सिंटैक्स और कमांड्स के प्रारूप की जाँच

इस त्रुटि संदेश का अनुभव करने का पहला और महत्वपूर्ण कारण यह हो सकता है कि आपके कोड में खराब सिंटैक्स है या आप कमांड्स के सटीक प्रारूप का पालन नहीं कर रहे हैं। प्रत्येक कमांड में एक पूर्वनिर्धारित प्रारूप होता है जिसे आप इसके प्रलेखन में देख सकते हैं। कई पैरामीटर वैकल्पिक हैं जो अन्य अनिवार्य हैं।



इसके अलावा, अतिरिक्त देखभाल की जानी चाहिए अतिरिक्त जगह , का उपयोग डबल उद्धरण , और यह अनिवार्य मापदंडों की आवश्यकता यदि उनमें से कोई भी लापता है या गलत तरीके से घोषित किया गया है, तो आप अपने कोड को निष्पादित नहीं कर पाएंगे।

उदाहरण के लिए, निम्न कोड के बजाय

[mycom7] # ./ctopo.sh um_test1 [(1,2), (2,1)]

आपको इसे निष्पादित करने की आवश्यकता है

[mycom7] # ./ctopo.sh um_test1 '[(1,2), (2,1)]'

इसके अलावा, सुनिश्चित करें कि आप अपनी कमांड / शेल स्क्रिप्ट को सही ढंग से निष्पादित कर रहे हैं यदि यह कई लाइनों को फैला रहा है।

पैरामीटर प्रकार के कारण, दोहरे उद्धरण आवश्यक हैं। एक अतिरिक्त स्थान भी आपके कोड को बर्बाद कर सकता है और त्रुटि संदेश को मजबूर कर सकता है। सुनिश्चित करें कि आप की जाँच करें आधिकारिक दस्तावेज कमांड को आप निष्पादित कर रहे हैं और देखें कि क्या वहां कोई समस्या है।

समाधान 2: अपने शेल स्क्रिप्ट का समस्या निवारण

यदि एक शेल स्क्रिप्ट का उपयोग किया जाता है जो स्रोत प्रणाली में काम करता है, लेकिन लक्ष्य में कोई त्रुटि देता है, तो आप स्क्रिप्ट को निष्पादन के दौरान संग्रहित चर की जाँच करके समस्या का निवारण कर सकते हैं और फिर देख सकते हैं कि समस्या क्या है। यह एक बहुत ही सामान्य कारण है क्योंकि कई मामलों में, शेल एक अप्राप्य चरित्र की व्याख्या करने की कोशिश करता है।

'Vx' के पैरामीटर के साथ शेल को चलाने का प्रयास करें। यह हमें दिखाएगा कि कौन सी कमांड चल रही हैं और स्क्रिप्ट में कौन से मूल्य संग्रहीत हैं। यहाँ के माध्यम से आप समस्या का निदान कर सकते हैं और गलत हो रहा है।

उदाहरण के लिए, ’vx’ को शामिल करने के बाद टर्मिनल में स्क्रिप्ट निष्पादित करें:

# sh -vx/test_script5.sh

आप command कैट ’कमांड का उपयोग करके स्क्रिप्ट की सामग्री की जाँच कर सकते हैं:

# बिल्ली test_script5.sh

समाधान 3: 'dos2unix.exe' कमांड का उपयोग करना

विंडोज / डॉस टेक्स्ट फाइलों में, एक नई लाइन कैरिज रिटर्न ( r) का एक संयोजन है जिसके बाद एक लाइन फीड ( n) होती है। मैक (मैक ओएस एक्स से पहले) में, एक लाइन ब्रेक ने एक साधारण कैरिज रिटर्न ( r) का उपयोग किया। यूनिक्स / लिनक्स और मैक ओएस एक्स लाइन फीड ( n) लाइन ब्रेक का उपयोग करते हैं। यदि आप Cygwin का उपयोग कर रहे हैं, तो यह अतिरिक्त कैरेज़ रिटर्न ( r) वर्ण के कारण DOS / Windows और पुराने मैक द्वारा बनाई गई स्क्रिप्ट को संसाधित करने में विफल हो जाएगा।

का उपयोग करते हुए

'Dos2unix.exe' कमांड का उपयोग करना

यहां आप os dos2unix.exe 'कमांड बना सकते हैं जो स्क्रिप्ट को सही प्रारूप में बदल देगा और फिर आप इसे बिना किसी समस्या के निष्पादित कर सकते हैं।

निष्कर्ष निकालने के लिए, आपको अपने आदेशों और आपके द्वारा उपयोग किए जा रहे प्लेटफ़ॉर्म के प्रकार पर शोध करने की आवश्यकता है और सुनिश्चित करें कि कोई विसंगतियां नहीं हैं। चूंकि हम प्रत्येक संभावना को कवर नहीं कर सकते हैं, आपको पता होगा कि किस प्रकार की त्रुटियां हो सकती हैं और उन्हें कैसे ठीक किया जाए।

3 मिनट पढ़ा