2011-03-30 27 views
8
#!/bin/sh 
while true ; do 
echo "WTF" 
done 

यह एक सिंटैक्स त्रुटि दे रहा है फ़ाइल की अनपेक्षित समाप्ति (उम्मीद "कर")खोल स्क्रिप्ट त्रुटि की उम्मीद "do"

मैं भी करने की कोशिश की:

#!/bin/sh 
while : 
do 
echo "WTF" 
done 
+0

दोनों काम ठीक: आप \r (0d) tr कमांड के साथ पट्टी कर सकते हैं। इसे vi के माध्यम से दर्ज करने का प्रयास करें, क्योंकि यह आपकी स्क्रिप्ट में कुछ वर्ण एन्कोडिंग/लाइन फ़ीड्स होने का अंत हो सकता है। – dotalchemy

+0

अजीब तरह से आपका पहला प्रयास मेरे लिए खोजता है। शायद आपके बैश में एक profanity फ़िल्टर है :)। कोई भी अन्य जानकारी जो आप हमें दे सकते हैं जब आपका पहला असफल हो जाता है? –

उत्तर

15

मैं लाइन अंत संदेह है।

प्रयास करें:

hexdump -C yourscript.sh 

और 0d 0a दृश्यों के लिए लग रही है। मेरे लिए

cat yourscript.sh | tr -d '\r' >> yournewscript.sh 
+1

मैं 0 दिन 0A दृश्यों लेकिन अपनी लाइन उन्हें टीआर आदेश मेरे लिए काम नहीं किया के साथ बाहर पट्टी देखते हैं। मैंने वीआई का इस्तेमाल किया जिसके बाद काम नहीं हुआ और अब ठीक काम कर रहा है! धन्यवाद – Jordan

+0

कोई समस्या नहीं। यदि आप एफ़टीपी के माध्यम से अपने लिनक्स/यूनिक्स बॉक्स में स्क्रिप्ट अपलोड कर रहे हैं, तो आप एएससीआई/टेक्स्ट प्रारूप का चयन कर सकते हैं, और एफ़टीपी आपके लिए लाइन रूपांतरण के अंत को संभालेगा। यदि, दूसरी ओर, आप फ़ाइल को किसी अन्य तरीके से बना रहे हैं, तो tr अवांछित वर्णों को पट्टी करने के लिए एक अच्छा टूल है। –

1

को इस एक कोशिश:

#!/bin/sh 
while [ true ] 
do 
    echo "WTF" 
done 

कृपया लाइन में रिक्त स्थान पर विशेष ध्यान देना ', जबकि [सच]'

+0

आह, ओह ... मुझे इसे से हरा दिया। ;) – jwir3

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