2013-10-04 8 views
5

मेरे पास यह बहुत ही सरल सीएसएस स्क्रिप्ट है।घटना नहीं मिली सीएस

#!/bin/csh 
     echo "Hello World!" 
     echo "How are you today?" 

लेकिन मैं त्रुटि ": Event not found.

क्या गलत है मिल रहा है?

+0

पहली पंक्ति को '#!/Bin/csh -f' में संशोधित करें और पुनः प्रयास करें। यह आपके '.cshrc' या' .tcshrc' से संबंधित हो सकता है। – timrau

+0

कोशिश की। – Programmer

उत्तर

7

सीएसएच इतिहास प्रतिस्थापन के लिए ! चरित्र का उपयोग करता है। तो अनुक्रम !" में, " स्ट्रिंग के लिए समापन उद्धरण चिह्न के रूप में नहीं माना जाता है; बल्कि, शेल " से शुरू होने वाले आपके कमांड इतिहास में कुछ के लिए खोज करता है, जैसे कमांड लाइन पर !foo टाइपिंग foo से शुरू होने वाला सबसे हालिया कमांड दोहराता है।

कम से कम मूल सीएसएच के लिए, यह प्रतिस्थापन हमेशा एकल-उद्धृत तारों में भी किया जाता है (इसलिए सिंगल कोट्स में डबल कोट्स को जरूरी नहीं मदद मिलेगी)। ।

#!/bin/csh -f 
echo "Hello World\!" 
echo "How are you today?" 

(कुछ सिस्टम पर, मुझे लगता है कि दोहरे उद्धरण चिह्नों के बजाय एकल उद्धरण का उपयोग कर त्रुटि से बचने करता है मुझे लगता है कि:

एक ! चरित्र से बचने के लिए एक ही रास्ता एक \ बैकस्लैश के साथ है क्योंकि उन प्रणालियों /bin/csh पर /bin/tcsh करने के लिए एक सिमलिंक है, जो थोड़ा अलग काम करता है। आप उस पर निर्भर नहीं करना चाहिए अगर आप अपनी स्क्रिप्ट पोर्टेबल होना चाहता हूँ।)

ध्यान दें कि मैं भी एकजोड़ दिया हैविकल्प #! लाइन के लिए। यह शेल को स्टार्टअप पर आपके $HOME/.cshrc निष्पादित करने से रोकता है, और यह आमतौर पर सीएसएच स्क्रिप्ट के लिए एक अच्छा विचार है। यह उन्हें थोड़ा तेज़ चलाता है, और यह आपके .cshrc पर आकस्मिक निर्भरता को रोकता है, जो कोई समस्या हो सकती है जब अन्य आपकी स्क्रिप्ट चलाते हैं।

और csh पटकथा के बारे में किसी भी सवाल है, मैं कानूनी तौर पर [*] इस लिंक पोस्ट करने के लिए बाध्य कर रहा हूँ:

http://www.perl.com/doc/FMTEYEWTK/versus/csh.whynot

[*] मैं वास्तव में कानूनी तौर पर इस लिंक पोस्ट करने के लिए बाध्य नहीं कर रहा हूँ।

+1

टीएल काम नहीं कर रहा; डीआर: "क्या गलत है?" "Csh।" प्रश्न और उत्तर दोनों के लिए +1। – stevesliva

संबंधित मुद्दे