मेरे पास मैं लेकिन जब मैं फेरबदल करना चाहता हूँ। Pl को ~ / .tools और निष्पादित करना। यह दिखा रहा है कि मुझे लाइन 5 में त्रुटि है लेकिन अगर मैं त्रुटि संदेश । Cshrc धन्यवाद यहाँ मेरा कार्यक्रम है शेबांग को यह बताने के लिए उपयोग किया जाता है कि किस दुभाषिए के लिए उपयोग किया जाना चाहिए यह स्क्रिप्ट इसके लिए काम करने के लिए, जादू संख्या इस मामले में, शेबांग को कुछ खाली रेखाओं से पहले किया गया था। उन्हें निकालना होगा। जब कोई स्पष्ट दुभाषिया का उपयोग फाइल निष्पादित करने के लिए किया जाता है, तो शेबांग को पार्स नहीं किया जाता है, उदा। में सामान्यतः, अगर शेबांग काम नहीं करता है, तो निम्न संभावित त्रुटियों की जांच हो सकती है: गैर-मूल लाइन अंत को निष्पादन योग्य नाम का हिस्सा बनने में भ्रमित किया जा सकता है। जैसे विंडोज़ लाइन के अंत के साथ, शेबांग में दुभाषिया का नाम shuffle.pl प्रोग्राम है। जब मैं
perl shuffle.pl इनपुट का उपयोग करता है निष्पादित करने के लिए, यह सफलता काम करता है और कोई त्रुटि नहीं दिखाता है।
./ tools नामक निर्देशिका बना रहा हूं मेरी होम डायरेक्टरी, और मैं इस पथ को
.cshrc पर सेट करता हूं। इसलिए मैं निष्पादित करने के लिए
perl टाइप किए बिना प्रोग्राम निष्पादित कर सकता हूं। (यह मेरी पहली बार ऐसा करने के लिए है, शायद यहां कुछ गलत है)
perl ~ / .tools / shuffle.pl का उपयोग करता हूं तो यह काम कर सकता है तो इसका मतलब है कि मेरे प्रोग्राम में कोई वाक्यविन्यास त्रुटि नहीं होनी चाहिए, लेकिन मेरे प्रोग्राम को ~ / .tools
करने के बाद क्यों काम नहीं कर सकता। उपकरण / शफल। प्लल: 5: सिंटैक्स त्रुटि: "(" अप्रत्याशित
सेट पथ = (। ~ ~ / .tools / sbin / Bin / usr / sbin / usr / bin / usr / games / usr / local / sbin / usr / स्थानीय / bin)
#! / Usr / bin / perl सख्त का उपयोग करें; चेतावनियों का उपयोग करें; सूची :: यूटीएल qw का उपयोग करें (पहले अधिकतम maxstr मिनट minstr shuffle राशि को कम); खोलें (मेरी $ एफएच, "& lt;", "$ ARGV [0]"); मेरा @ लाइनों = रीडलाइन ($ एफएच); मेरा @ शफ़ेड = शफल (@ लाइन्स); करीब $ एफएच; ओपन (मेरा $ शफ, "& gt;", "$ ARGV [1]"); $ shuf @ shuffled; Shuf;
#! को फ़ाइल की तत्काल शुरुआत में दिखना होगा। अन्यथा, डिफ़ॉल्ट इंटरप्रेटर का उपयोग किया जाता है।
$ perl script.pl ।
केवल निष्पादन योग्य के रूप में लॉन्च किया जाता है: । / Script.pl । उस स्थिति में, कर्नेल को यह पता लगाया जाता है कि इसके साथ क्या करना है: संकलित प्रोग्राम के रूप में स्मृति में लोड करें? एक दुभाषिया शुरू करें? कौनसा?
#! की तरह जादू संख्याओं को हल करें।
#! से पहले होता है।
निदान: एक हेक्सडम्प दिखाता है FE FF शुरुआत में।
< Em> समाधान: BOM के बिना फाइलों को स्टोर करने के लिए अपने संपादक को कॉन्फ़िगर करें #! को एन्कोड नहीं करता है ASCII । निदान: फ़ाइल
#! के साथ शुरू नहीं होती है जब एएससीआईआई के रूप में खोला जाता है या ये हेक्सडम्प में
23 21 से शुरू नहीं होता है। या आपका संपादक यूटीएफ -16 या यूटीएफ -32 को एन्कोडिंग के रूप में दिखाता है।
समाधान: एएससीआईआई-संगत एन्कोडिंग में स्क्रिप्ट को स्टोर करें यूटीएफ -8 एक विशेष रूप से अच्छा विकल्प है।
#! / Usr / bin / perl प्रिंट 1;
"/ usr / bin / perl \ r" के रूप में लिया जा सकता है। कई फाइल सिस्टम फ़ाइल नामों के अंदर रेखा के अंत की अनुमति देते हैं।
निदान: हेक्सडम्प एक स्थान ( 20 ) या नई लाइन (
0A ) निष्पादन योग्य नाम के बाद।
समाधान: लाइन के अंत को यूनिक्स में कनवर्ट करें।
No comments:
Post a Comment