मैं WSL में बैश स्क्रिप्ट चलाने वाली "$ '\ r': कमांड नहीं मिली" त्रुटियों को कैसे ठीक करूं?


23

मुझे junyanz / pytorch-CycleGAN-and-pix2pix का उपयोग करने की कोशिश करते समय WSL में एक त्रुटि मिल रही है ।

मैंने विंडोज़ 10 पर प्योरच के चरणों का उपयोग करते हुए विंडोज 10 एक्स 64 पर सफलतापूर्वक सभी स्थापित चरणों का पालन किया : स्क्रीनशॉट के साथ एक निर्देशात्मक , फिर विंडोज के लिए जीआईटीएचबी डेस्कटॉप के साथ उबंटू और विंडोज 10 पर लिनक्स बैश शेल कैसे स्थापित करें और इसका उपयोग करें

लेकिन मैं नवीनतम चरणों में अवरुद्ध हूं।

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

bash pretrained_models/download_pix2pix_model.sh facades_label2photo

मुझे तत्काल त्रुटि मिलती है, हमेशा समान, इन के समान:

root@Azure:/mnt/c/Users/vincent/Downloads/vision/pytorch-CycleGAN-and-pix2pix# bash pretrained_models/download_pix2pix_model.sh facades_label2photo
pretrained_models/download_pix2pix_model.sh: line 2: $'\r': command not found
Note: available models are edges2shoes, sat2map, and facades_label2photo
pretrained_models/download_pix2pix_model.sh: line 4: $'\r': command not found
]pecified [facades_label2photo
pretrained_models/download_pix2pix_model.sh: line 6: $'\r': command not found
mkdir: cannot create directory ‘./checkpoints/facades_label2photo\r_pretrained\r’: No such file or directory
pretrained_models/download_pix2pix_model.sh: line 10: $'\r': command not found
WARNING: timestamping does nothing in combination with -O. See the manual
for details.

: No such file or directoryhphoto
pretrained_models/download_pix2pix_model.sh: line 12: $'\r': command not found
pretrained_models/download_pix2pix_model.sh: line 13: $'\r': command not found

कोई उपाय?


4
मुझे पता नहीं है कि आप क्या कर रहे हैं, लेकिन $'\r': command not foundदृढ़ता से इस मुद्दे का सुझाव है कि आपने एक विंडोज़ टेक्स्ट एडिटर का उपयोग किया है जिसने आपकी फ़ाइलों को डॉस-स्टाइल
सीआरएलएफ

लेकिन Im सिर्फ विंडो Ubuntu कमांड प्रॉम्प्ट में सीधे कमांड टाइप कर रहा है। किसी भी पाठ संपादक द्वारा पारित नहीं ...
विन्सेन्ट थॉमस

1
@VincentThomas यह एक पाठ फ़ाइल है:pretrained_models/download_pix2pix_model.sh
wjandrea

यहां उत्तर का प्रयास करें: विंडोज लाइन-एंडिंग को यूनिक्स संस्करण में कैसे बदलें । यदि यह काम करता है, तो हमें बताएं और हम आपके प्रश्न को एक डुप्लिकेट के रूप में बंद कर देंगे।
वेजेंड्रिया 18

@wjandrea मुझे नहीं लगता कि यह वास्तव में डुप्लिकेट को विंडोज लाइन-एंडिंग को यूनिक्स संस्करण में बदलने का एक डुप्लिकेट है । यहाँ उचित समाधान WSL प्रणाली के भीतर चलाने git cloneके लिए है , और प्रत्येक फ़ाइल को परिवर्तित करने के लिए अतिरिक्त प्रयास करने के लिए नहीं है। यदि लक्ष्य उबंटू में सॉफ़्टवेयर स्थापित करना है, तो पहले इसके फाइलसिस्टम के बाहर इसे डाउनलोड करने का कोई कारण नहीं है।
एलियाह कगन

जवाबों:


23

WSL के अंदर:

sudo apt-get install dos2unix

फिर,

dos2unix [file]

पूर्ण प्रलेखन:

man dos2unix

मेरा दिन बचाया, आशा है कि यह मदद करता है।


यह काम। मैं VSCode का उपयोग कर रहा था और एक शेल स्क्रिप्ट थी जो कुछ rsync और ssh कमांड को निष्पादित करता है, और इस मुद्दे में भाग गया। मैंने WSL के अंदर dos2unix स्थापित किया जैसे कि Chaim ने कहा, और wsl dos2unix deploy.shPowershell से एक बार निष्पादित किया गया , और अब, हर बार मैं टाइप wsl ./deploy.shकरता हूं, सब कुछ पूरी तरह से काम करता है! बहुत बहुत धन्यवाद।
डैन ज़ूज़ेविच

7

स्टीलड्राइवर सही है कि समस्या यह है कि आपके पास विंडोज लाइन एंडिंग वाली फाइलें हैं और bashवे उन्हें नहीं चला सकते हैं। $'\r'कैरिज रिटर्न कैरेक्टर (सीआर) का प्रतिनिधित्व है जो पारंपरिक डॉस और विंडोज लाइन एंडिंग्स (सीआर एलएफ) का हिस्सा है, लेकिन जो पारंपरिक यूनिक्स-स्टाइल लाइन एंडिंग्स (एलएफ) में अनुपस्थित है।

जैसा कि आप कहते हैं , आप स्क्रिप्ट को चलाने का प्रयास करने के लिए कमांड टाइप कर रहे हैं bash, लेकिन ध्यान दें कि स्क्रिप्ट वास्तव में आपके विंडोज डाउनलोड डायरेक्टरी में आपके Ubuntu (WSL) सिस्टम के बाहर संग्रहीत है :

/mnt/c/Users/vincent/Downloads/vision/pytorch-CycleGAN-and-pix2pix

WSL रास्तों कि के साथ शुरू /mnt/cहै, जहां cकिसी भी Windows ड्राइव अक्षर हो सकता है, रास्तों कि कर रहे हैं पहुँच फ़ाइलों और निर्देशिकाओं बाहर उबंटू प्रणाली। Windows पथ के रूप में, जो है:

C:\Users\vincent\Downloads\vision\pytorch-CycleGAN-and-pix2pix

उस फ़ाइल को आपके विंडोज सिस्टम में उस क्षेत्र के बाहर संग्रहीत किया जाता है, जहां उबंटू स्थापित है, यह गारंटी नहीं देता है कि यह यूनिक्स-स्टाइल लाइन एंडिंग्स के बजाय विंडोज-शैली का उपयोग करता है। हालाँकि, यदि आपने विंडोज़ में गिट के साथ फाइलें डाउनलोड की हैं, तो इसका डिफ़ॉल्ट कॉन्फ़िगरेशन आपको विंडोज-स्टाइल लाइन एंडिंग्स देना है।

समस्या को ठीक करने का सबसे आसान तरीका वास्तव में आपके प्रॉम्प्ट से उबंटू प्रणाली के अंदर आवश्यक फ़ाइलों को डाउनलोड करना है bash। मैं आपको उबंटू प्रणाली को पूरी तरह से अपडेट करने की सलाह देता हूं, फिर git उबंटू में स्थापित करें , साथ ही साथ build-essentialउपयोगी उपकरण प्रदान करता है जिसे आपको स्रोत कोड से अधिकांश सॉफ़्टवेयर संकलित करने की आवश्यकता होती है। पायथन कार्यक्रमों के लिए, आपको आवश्यकता नहीं हो सकती है build-essential; यदि आप चाहें, तो आप इसे छोड़ सकते हैं, लेकिन मुझे संदेह है कि आपको कुछ बिंदु पर इसकी आवश्यकता होगी।

sudo apt update && sudo apt upgrade && sudo apt install git build-essential

फिर cdएक निर्देशिका में जाने के लिए कमांड का उपयोग करें जहां आप सॉफ़्टवेयर डाउनलोड करना चाहते हैं। यह आपके उबंटू प्रणाली के भीतर एक निर्देशिका होना चाहिए। उदाहरण के लिए, यह आपके उबंटू घर निर्देशिका या कहीं अंदर हो सकता है। एक बार, वहाँ GitHub से भंडार क्लोन। मैंने इसे उस srcडायरेक्टरी के अंदर किया, जिसे मैंने अपने होम डायरेक्टरी के अंदर बनाया था।

cd ~/src
git clone https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix.git

बेशक, आपको सबसे पहले आश्रितों को स्थापित करना होगा। ऐसा करने के लिए, बस सभी आधिकारिक निर्देशों का पालन करें । उबंटू सिस्टम के भीतर उन सभी चरणों को करें ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.