2011-12-27 13 views
11

द्वारा समझा नहीं गया है मैं बैश स्क्रिप्ट के लिए नया हूं। मैं इस तरह उबंटू में निम्नलिखित सरल स्क्रिप्ट चलाने:बश स्क्रिप्ट उबंटू बैश

sudo bash -x Script.sh 

आउटपुट:

+ $'\r' 
: command not found 
+ $'\r' 
: command not found 
+ $'\r' 
: command not found 
+ adminEmail=$'[email protected]\r' 
+ $'\r' 
: command not found 
' echo 'database name: 
database name: 
+ read $'dbname\r' 

वास्तविक स्क्रिप्ट:

#!/bin/bash 

# Installation script for latest Wordpress website on Ubuntu 
# 
# Kave 
# December 27, 2011 


adminEmail="[email protected]" 

echo "database name:" 
read dbname 

इन सभी '\r' त्रुटि संदेश आ रहे हैं क्या? यहां तक ​​कि टिप्पणियों को भी समझा नहीं जा सकता है ...

+0

ऐसा लगता है कि आप लाइन अंत के साथ एक समस्या है, लेकिन मैं इसे ठीक करने नहीं पता ... – evotopid

+0

यह मेरे लिए काम करता है ... आर्क लिनक्स i686 – Paul

+1

कमांड लाइन से 'dos2unix scriptname scriptname' करें। '\ r' कैरिज रिटर्न हैं, क्या आपने विंडोज मशीन पर फाइल बनाई और इसे लिनक्स में भेज दिया? –

उत्तर

10

आपने विंडोज मशीन के माध्यम से फ़ाइल डाउनलोड की है, और आपके पास सीआरएलएफ लाइन एंडिंग है (यह \r\n सी और संबंधित भाषाओं में है)।

डॉस लाइन समाप्ति को हटाएं। उदाहरण के लिए, फ़ाइल को vim में संपादित करें और प्रारूप को :set fileformat=unix (प्लस रिटर्न) के साथ बदलें और फिर फ़ाइल को वापस लिखें। उपलब्ध तकनीक के आधार पर वैकल्पिक तकनीक tr कमांड, या dos2unix या dtou का उपयोग कर सकती हैं।

1

कट और अपने Ubuntu पर एक संपादक में इस पृष्ठ से अपने कोड पेस्ट, तो आप (उदाहरण के लिए लिनक्स पर \r\n खिड़कियों पर बनाम \n) अपने लाइन अंत तय मिलेगा

आप एक के रूप में सहेज हैं नई फाइल मुझे यकीन है कि यह ठीक काम करेगा।

1

लगता है कि फ़ाइल में कुछ अपर्याप्त गैर-प्रिंट करने योग्य वर्ण हैं।
ओपन Vi/विम में फ़ाइल:
प्रेस [ESC] आदेश मोड
में मिल तो टाइप :set list

+0

और एक बार जब आपको वर्ण सूचीबद्ध हो जाएंगे, तो आप उन्हें हटाने के बारे में कैसे जाएंगे? StackOverflow में आपका स्वागत है। आपका उत्तर सही लाइनों पर बहुत अधिक है, लेकिन यह अभी तक पूरा नहीं हुआ है। –

11

सीधे शब्दों में

dos2unix scriptname 

करते हैं और अपनी स्क्रिप्ट निष्पादित करने के लिए।

यदि आपके पास उपकरण नहीं है तो आप इसे इंस्टॉल करने के लिए निम्न कार्य कर सकते हैं।

sudo apt-get install dos2unix 

या

निम्नलिखित कमांड लाइन हैक करता फ़ाइल को रूपांतरित करने करो।

tr -d '\015' <scriptname> scriptname.new 

या

sed -i 's/\x0D$//' scriptname 
+0

बहुत धन्यवाद .... – Houman

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